
대량의 정보를 보관하고 관리하는 수단
배열 선언
배열을 선언하는 법은 다음과 같다.
let emptyArr = []; //빈 배열
let arr = ['a', 'b', 'c'];
빈 배열을 이용하면 많은 정보를 담거나 꺼내 쓸 수 있다.
또한 배열에 담을 수 있는 요소는 제한이 없다.
(ex. 함수, 문자열 등등)
배열의 index
let fruit = ['apple', 'orange', 'grape'];
배열에도 문자열과 같이 index 값이 있다.
fruit[0]; // "apple"
fruit[1]; // "orange"
배열의 경우 index값은 가장 첫 element가 '0'의 값을 갖는다.
fruit[3] = 'lemon';
//["apple", "orange", "grape", "lemon"]
//배열에 요소를 추가하는 것도 가능하다.
alert(fruit.length);
// 3
// 담긴 요소의 갯수도 알 수 있다.
배열 메서드
배열을 추가, 삭제하는 메서드
let number = [1, 2, 3, 4]
myNumber.unshift(0); // 배열 앞부분에 요소 추가
[0, 1, 2, 3, 4, 5]
myNumber.shift(); // 배열 앞부분 요소 삭제
[1, 2, 3, 4]
myNumber.push(5); // 배열 끝부분에 요소 추가
[1, 2, 3, 4, 5]
myNumber.pop(); // 배열 끝부분 요소 삭제
[1, 2, 3, 4]
splice 메서드는 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 '기존 배열을 변경' 합니다.
let arr = [1,2,3,4,5,6,7,8]
arr.splice(2, 0, 'a');
// 2번 인덱스부터 0개를 'a'인덱스로 교체(추가)한다.
// console.log(arr) [1, 2, "a", 3, 4, 5, 6, 7, 8]
// removed is []
arr.splice(3, 2, 'a');
// 3번 인덱스부터 2개를 'a'인덱스로 교체한다.
// console.log(arr) [1, 2, 3, "a", 6, 7, 8]
// removed is [4, 5]
arr.splice(3, 1);
// 3번 인덱스 자리에서 1개 요소를 제거한다.
// console.log(arr) [1, 2, 3, 5, 6, 7, 8]
// removed is [4]
arr.splice(-4, 2);
// -4번 인덱스 자리에서 2개의 인덱스를 제거한다.
// console.log(arr) [1, 2, 3, 4, 7, 8]
// removed is [5, 6]
concat 메서드는 인자로 주어진 배열이나 값을
기존 배열에 추가 후 새 배열을 반환
let arr1 = ['a', 'b', 'c']
let arr2 = ['d', 'e', 'f']
let arr3 = arr1.concat(arr2);
// arr3 = ["a", "b", "c", "d", "e", "f"]
// arr1 = ["a", "b", "c"]
// 새로운 배열을 반환하기 때문에 기존의 배열은 변화가 없다.
// arr3 같은 변수를 선언하지 않아도 같다.
slice 메서드는 'begin'부터 'end'직전까지에 대한 복사본을
새로운 배열 객체로 반환한다.
(원본 변하지 않는다.)
//arr.slice(begin, end)
let arr = ['a', 'b', 'c', 'd', 'e']
arr.slice(1, 4); //["b", "c", "d"]
arr.slice(2); //["c", "d", "e"]
arr.slice(-2); //["d", "e"]
arr.slice(2, -1); //["c", "d"]
arr.slice(); //["a", "b", "c", "d", "e"]
join 메서드는 배열내의 요소들을 하나의 문자열로 반환한다.
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.join(); //"a,b,c,d,e"
arr.join(''); //"abcde"
arr.join('-'); //"a-b-c-d-e"