- 1개의 변수에 여러 개의 값을 순차적으로 저장할 때 사용한다.
- Array() 생성자 함수 : const arr = new Array(1,2,3);
- 배열 리터럴 방식 : const arr = [1,2,3]; 주로 사용한다.
- array.length : 배열의 길이를 나타낸다.
(1) 배열의 추가와 삭제
- 배열은 동적으로 요소를 추가나 삭제할 수 있다.
var a = [];
a[0] = 1;
a[2] = 3;
console.log(a); // [ 1, <1 empty item>, 3 ]
console.log(a.length); // 3
delete a[3]; // 요소 값만 삭제
console.log(a); // [ 1, <2 empty items> ]
a.splice(1,2); // 요소를 완전히 삭제
console.log(a); // [ 1 ]
(2) 배열 Method
- Array.isArray() : 주어진 인수가 배열이면 true, 배열이 아니면 false
- Array.from() : 유사 배열 객체 나 이터러블 객체를 변환하여 새로운 배열을 생성한다.
- Array.of() : 전달된 인수가 1개이고 숫자더라도 인수를 인수로 갖는 배열을 생성한다.
console.log(Array.isArray([])); // true
console.log(Array.isArray([1, 2])); // true
console.log(Array.isArray(new Array())); // true
console.log(Array.isArray()); // false
console.log(Array.isArray({})); // false
var a = Array.from('wangi'); // 문자열은 이터러블
console.log(a); // [ 'w', 'a', 'n', 'g', 'i' ]
var b= Array.from({ length: 2, 0: 'a', 1: 'b' }); // 유사 배열 객체
console.log(b); // [ 'a', 'b' ]
var c = Array.of(1);
console.log(arr1); // [1]
var d = Array.of(1, 2, 3);
console.log(d); // [1, 2, 3]
- .indexOf() : 원본 배열에서 인수로 전달된 요소를 검색하여 인덱스를 반환한다. 중복 요소가 있을 경우 첫 번째 인덱스를 반환, 요소가 없을 경우 -1을 반환한다.
- .concat() : 기존의 배열 마지막요소로 인수에 추가하여 배열로 반환, 원본은 유지한다.
- .join() : 배열의 모든 요소를 문자열로 변환, 기본 구분자는 , 인수로는 구분자를 전달한다.
- .push() : 인수로 전달받은 값을 배열의 마지막 요소에 추가하고 변경된 length를 반환한다. 원본이 변경된다.
- .pop() : 원본 배열에서 마지막 요소를 제거하고 제거한 요소를 반환한다. 원본이 변경된다. 빈배열이면 undefined
- .reverse : 배열 순서를 반대로 변경한다. 원본이 변경된다.
- .shift() : 배열의 첫 번째 요소를 제거하고 제거한 요소를 반환한다. 원본이 변경된다. 빈배열이면 undefined
- .slice() : 인수로 전달받은 범위를 복사하여 반환한다. 원본은 변경되지 않는다. 음수 인자를 사용하면 역방향에서 복사도 가능하다.
- .splice() : 기존 배열의 요소를 제거하고 그 위치에 새로운 요소를 추가한다. 원본이 변경된다.
var a = [1, 2, 3, 4, 4, 5];
console.log(a.indexOf(4)); // 3
console.log(a.indexOf(6)); // -1
console.log(a.indexOf(4, 4)); // 4
console.log(a.concat(6)); // [ 1, 2, 3, 4, 4, 5, 6 ]
console.log(a.concat([6,7])); // [ 1, 2, 3, 4, 4, 5, 6, 7 ]
console.log(a.join()); // 1,2,3,4,4,5
console.log(a.join(":")); // 1:2:3:4:4:5
console.log(a.push(6, 7)); // 8
console.log(a.pop()); // 7
console.log(a.reverse); // [ 6, 5, 4, 4, 3, 2, 1 ]
console.log(a.shift()); // 6
console.lof(a); // [ 5, 4, 3, 2, 1 ]
console.log(a.slice(2,5)); // [ 4, 3, 2 ]
console.log(a.splice(2, 1)); // 4
console.log(a); // [ 5, 4, 3, 2, 1 ]
(3) JavaScript에서의 배열
- 일반적인 배열은 밀집 배열이지만 JavaScript는 희소배열이다.
- 밀집배열은 메모리 공간이 빈틈없이 나열된 구조이지만 희소배열은 메모리 공간이 연속적으로 있지 않는 배열이다.
- 밀집배열이 희소 배열보다 요소에 접근은 빠르지만 삽입삭제는 희소 배열이 빠르다.
'JavaScript' 카테고리의 다른 글
[JavaScript] DOM (0) | 2023.10.30 |
---|---|
[JavaScript] Higher order function (1) | 2023.10.30 |
[JavaScript] String (0) | 2023.10.26 |
[JavaScript] 정규표현식 (1) | 2023.10.24 |
[JavaScript] Date (0) | 2023.10.24 |