home
자바
home

배열

배열 기본

객체
종류: 배열, 함수, 배열이나 함수가 아닌 객체
배열
값들을 하나로 묶을 수 있음
const fruits = ['사과', '오렌지', '배', '딸기']; console.log(fruits[0]); // 사과 console.log(fruits[1]); // 오렌지 console.log(fruits[2]); // 배 console.log(fruits[3]); // 딸기
JavaScript
복사
자릿수 == 인덱스(index)
배열 안에 문자열 뿐 아니라 다른 배열이나 변수를 넣을 수 있음
const arrayOfArray = [[1, 2, 3], [4, 5]]; arrayOfArray[0]; // [1, 2, 3] const a = 10; const b = 20; const variableArray = [a, b, 30]; variableArray[1]; // 20 (b의 값) const everything = ['사과', 1, undefined, true, '배열', null]; const empty = [];
JavaScript
복사
요소(element) : 배열 내부에 든 값
everything : 6개
empty : 0개
.length 를 사용하면 개수를 알 수 있음
빈 값도 요소 개수에 포함된다
const emptyValue = [null, undefined, false, '', NaN]; console.log(emptyValue.length); // 5
JavaScript
복사
빈 값도 유효한 값이기 때문에 요소 개수를 셀 때 포함됨
배열 마지막 요소 뒤에 새로운 요소 넣기
const target = ['가', '나', '다', '라', '마']; target[target.length] = '바'; console.log(target); // ["가", "나", "다", "라", "마", "바"]
JavaScript
복사
배열의 마지막 인덱스는 (배열의 길이 - 1) 이다. ⇒ 따라서 다음 요소를 추가하려면 배열.length 에 값을 넣으면 된다.
배열의 첫 번째 인덱스에 값을 추가하고 싶다면?
배열[0] = 값 이라고 생각할 수 있지만, 원하는 결과가 나오지 않는다.
const target = ['나', '다', '라', '마']; target[0] = '가'; console.log(target); // ["가", "다", "라", "마"]
JavaScript
복사
⇒ unshift를 사용한다!
const target = ['나', '다', '라', '마']; target.unshift('가'); console.log(target); // ["가", "나", "다", "라", "마"]
JavaScript
복사
마지막 인덱스에 값을 추가하는 방법도 있다.
⇒ push를 사용한다!
const target = ['가', '나', '다', '라', '마']; target.push('바'); console.log(target); // ["가", "나", "다", "라", "마", "바"]
JavaScript
복사
const는 상수인데 왜 배열 수정이 가능한가요?
⇒ 엄밀히 말해서 const는 상수는 아니다. 새로운 값을 대입(=)하지 못한다고 기억하기! 객체의 내부의 속성이나 배열의 요소는 수정할 수 있다.

배열 메서드(수정, 조회)

배열에서 요소 수정하기
const target = ['가', '나', '다', '라', '마']; target[3] = '카'; console.log(target); // ['가', '나', '다', '카', '마']
JavaScript
복사
배열에서 요소 제거하기
마지막 요소를 제거할 때는 pop 사용
const target = ['가', '나', '다', '라', '마']; target.pop(); console.log(target); // ['가', '나', '다', '라']
JavaScript
복사
첫 번째 요소를 제거할 때는 shift 사용
const target = ['가', '나', '다', '라', '마']; target.shift(); console.log(target); // ['나', '다', '라', '마']
JavaScript
복사
중간 요소를 제거할 때는 splice 사용 ⇒ splice(인덱스, 제거할 요소 개수)
const target = ['가', '나', '다', '라', '마']; target.splice(1, 1); console.log(target); // ['가', '다', '라', '마'] const target = ['가', '나', '다', '라', '마']; target.splice(2, 2); console.log(target); // ['가', '나', '마']
JavaScript
복사
숫자를 하나만 넣을 경우 ⇒ 해당 인덱스부터 끝까지 모든 요소를 제거
const target = ['가', '나', '다', '라', '마']; target.splice(1); console.log(target); // ['가']
JavaScript
복사
제거한 자리에 새로운 요소 채워 넣기 ⇒splice(인덱스, 제거 요소 개수, 새로 채워 넣을 요소)
const target = ['가', '나', '다', '라', '마']; target.splice(1, 3, '타', '파'); console.log(target); // ['가', '타', '파', '마']
JavaScript
복사
배열에서 요소 찾기
일종의 검색 기능 (해당 요소가 배열에 존재하는지 검색) ⇒ includes 사용
const target = ['가', '나', '다', '라', '마']; const result = target.includes('다'); const result2 = target.includes('카'); console.log(result); // true console.log(result2); // false
JavaScript
복사
검색하고 싶은 값이 몇 번째 인덱스에 위치하는지 ⇒ indexOf, lastIndexOf 사용
lastIndexOf: 뒤에서부터 검색
값이 존재하지 않을경우 -1 반환
const target = ['라', '나', '다', '라', '마']; const result = target.indexOf('다'); const result2 = target.lastIndexOf('라'); const result3 = target.indexOf('가'); console.log(result); // 2 console.log(result2); // 3 console.log(result3); // -1
JavaScript
복사
배열 반복하기
반복문으로 배열 출력하기
const target = ['가', '나', '다', '라', '마']; let i = 0; while (i < target.length) { console.log(target[i]); i++; }
JavaScript
복사

배열 메서드 응용하기

다음 배열에서 ‘라’를 모두 제거
const arr = ['가', '라', '다', '라', '마', '라']; // 1. '라' 위치 찾기 arr.indexOf('라'); // 1 // 2. 지우기 arr.splice(1, 1); // 3. 반복 arr.indexOf('라'); // 2 arr.splice(2, 1); arr.indexOf('라'); // 3 arr.splice(3, 1); arr.indexOf('라'); // -1
JavaScript
복사
위 내용을 토대로 반복문을 만들어보자 ⇒ arr.indexOf(’라’)의 값이 -1이 나올때까지 반복
const arr = ['가', '라', '다', '라', '마', '라']; while (arr.indexOf('라') > -1) { arr.splice(arr.indexOf('라'), 1) }
JavaScript
복사