1. 자바스크립트에서의 배열
1. 자바스크립트에서의 배열
자바스크립트에서 배열의 타입은 객체다.
그러나 다른 객체와 달리 배열은 값의 순서가 있고 length 프로퍼티가 있다는 점에서 독특한 객체다.
값의 순서가 있기 때문에 인덱스로 참조할 수 있고 순차적으로 값에 접근하기 적합하다.
2. 배열 기본 메서드
배열에는 원본 배열을 직접 변경하는 메서드와 원본 배열을 직접 변경하지 않고 새로운 배열을 생성해 반환하는 메서드가 있다.
전자는 mutator method, 후자는 accessor method라고 한다.
2-1. isArray
Array.isArray(x) //true or false
주어진 대상이 배열인지 아닌지 판단하는 메서드.
전달된 인수가 배열인지 아닌지 판단해 boolean값을 반환한다.
자바스크립트에서 배열의 타입은 객체이기 때문에 typeof로 판단할 수 없다.
따라서 isArray 메서드를 사용해 배열 여부를 판단해야 한다.
2-2. indexOf
Array.indexOf(x) //index number or -1
주어진 인수를 검색해 배열 내의 인덱스를 알려주는 메서드.
인수가 배열 내에 존재하지 않을 때는 -1을 반환한다.
인수가 배열 내에 중복돼 여러 번 존재할 때는 처음으로 등장한 요소의 인덱스를 반환한다.
2-3. includes
Array.includes(x) //true or false
배열에 인수가 포함되는지 확인하는 메서드.
2-4. push, pop, unshift, shift
Array.push(x) //변경된 Array length
Array.pop() //제거된 요소
Array.unshift(x) //변경된 Array length
Array.shift() //제거된 요소
배열에 요소를 추가하거나 빼는 메서드.
push와 pop은 배열의 마지막에 요소를 더하거나 빼고,
unshift와 shift는 배열의 처음에 요소를 더하거나 뺀다.
반환값이 배열이 아니라는 점, 원본 배열을 직접 변경한다는 점에 주의한다.
const arr1 = [0, 1];
//원본 배열의 마지막에 2를 추가하고 변경된 length 값을 반환한다.
console.log(arr1.push(2)); //3
//원본 배열을 직접 변경한다.
console.log(arr1); //[0, 1, 2]
const arr2 = [0, 1, 2];
//원본 배열의 마지막 요소를 제거하고 제거한 요소를 반환한다.
console.log(arr2.pop()); //2
//원본 배열을 직접 변경한다.
console.log(arr2); //[0, 1]
2-5. slice
Array.slice(start, end) //잘린 배열
원본 배열에서 범위를 지정해 복사하고 반환하는 메서드.
원본 배열은 변경되지 않는다.
2-6. splice
Array.splice(start, count, item) //제거된 요소
배열의 요소를 더하거나 빼거나 대체하는 메서드.
원본 배열을 직접 변경한다.
첫번째 매개변수: 요소를 제거하기 시작할 인덱스.
두번째 매개변수: 제거할 요소의 개수. 0으로 입력하면 요소가 제거되지 않는다.
세번째 매개변수: 제거한 위치에 삽입할 요소(들)
2-7. split, join
str.split() //구분자를 기준으로 나뉜 배열
Array.join() //구분자를 기준으로 합쳐진 문자열
문자열을 배열로 나누거나, 배열을 문자열로 합쳐주는 메서드.
split의 매개변수로 문자열을 나눌 기준(구분자)을 지정할 수 있다.
join의 매개변수로는 배열의 요소들을 합칠 때 삽입할 문자열을 지정할 수 있다.
2-8. concat
arr.concat(x); //새로운 배열
인수를 원본 배열의 마지막 요소로 추가해 새로운 배열을 반환한다.
원본 배열을 변경하지 않는다.
인수로는 배열, 원시값 모두 가능하다.
'Javascript' 카테고리의 다른 글
[Javascript] 스코프와 클로저 (0) | 2023.03.03 |
---|---|
[Javascript] 원시 자료형과 참조 자료형 (0) | 2023.03.02 |
[Javascript] 객체 (0) | 2023.02.28 |
[Javascript] 조건문, 반복문, 함수 (0) | 2023.02.21 |
[Javascript] 데이터 타입과 변수 (0) | 2023.02.20 |