본문 바로가기
JavaScript

[JavaScript] Array

by eddypark 2023. 10. 26.

- 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