모든 Array 인스턴스는 Array.prototype으로부터 메소드와 프로퍼티를 상속받는다.
이렇게 상속받은 Array.prototype 메소드는 크게 다음과 같이 구분 가능하다.
- 원본 배열을 변경하는 Array.prototype 메소드
(1) push() - 하나 이상의 요소를 배열의 가장 마지막에 추가한다.var array = [1, 2, 3, 4]; array.push("수"); console.log(array) // [1, 2, 3, 4, 수] 출력!
(2) pop() - 배열의 가장
마지막 요소
를 제거한다.var array = [1, 2, 3, 4]; array.pop(); console.log(array) // [1, 2, 3] 출력!
(3) shift() - 배열의 가장
첫 요소
를 제거한다.var array = [1, 2, 3, 4]; array.shift(); console.log(array) // [2, 3 ,4] 출력!
(4) unshift() - 하나 이상의 요소를 배열의 가장 앞에 추가한다.
var array = [1, 2, 3, 4]; array.unshift(-1, 0); console.log(array) // [-1, 0, 1, 2, 3, 4] 출력!
(5) reverse() - 배열의 순서를 전부 반대로 교체한다.
var array = [1, 2, 3, 4]; array.reverse(); console.log(array) // [4, 3, 2, 1] 출력!
(6) sort() - 해당 배열의 배열 요소들을 알파벳 순서에 따라 정렬한다. 이 메소드는 배열 요소를 모두 문자열로 보고 정렬하므로, 숫자나 불리언과 같은 타입의 요소들은 잘못 정렬될 수도 있다.
var strArr=["나이", "강아지", "다람쥐", "라디오"]; var numArr=[10, 21, 1, 2, 3]; strArr.sort(); // ["강아지", "나이", "다람쥐", "라디오"] numArr.sort(); // [1, 10, 2, 21, 3] // 숫자는 각 자릿수 별로 비교된 후, 정렬됨
(7) splice() - 기존의 배열 요소를 제거하거나 새로운 배열 요소를 추가하여 배열의 내용을 변경한다. 첫 번째 인수는 새로운 요소가 삽입될 위치의 인덱스이며, 두 번째 인수는 제거할 요소의 개수이다. 그 이후의 인수들은 모두 배열 요소로서 지정된 인덱스부터 차례대로 삽입된다. 이 메소드는 배열에서 제거된 요소를 배열의 형태로 반환하며, 아무 요소도 제거되지 않았으면 빈 배열을 반환한다.
var arr = [1, true, "JavaScript", "자바스크립트"]; //인덱스 1의 요소부터 2개의 요소를 제거한 후, false와 "C언어"를 그 자리에 삽입함. var removedElement = arr.splice(1, 2, false, "C언어"); arr; // [1,false,C언어,자바스크립트] removedElement; // [true,JavaScript]
- 원본 배열은 변경하지 않고 참조만 하는 메소드
1. join() - join() 메소드는 배열의 모든 요소를 하나의 문자열로 반환한다.
2. slice() - 전달받은 시작 인덱스부터 종료 인덱스 바로 앞까지의 모든 배열 요소를 추출하여 새로운 배열을 반환한다.var arr = [1, true, "JavaScript", "자바스크립트"]; arr.slice(1, 3); // [true,JavaScript] arr.slice(1); // [true,JavaScript,자바스크립트 ]
- concat() - 해당 배열의 뒤에 인수로 전달받은 배열을 합쳐서 만든 새로운 배열을 반환한다.
- toString() - toString() 메소드는 해당 배열의 모든 요소를 하나의 문자열로 반환한다.
- 원본 배열을 반복적으로 참조하는 메소드
- map(): 해당 배열의 모든 요소에 대하여 반복적으로 명시된 콜백 함수를 실행한 후, 그 실행 결과를 새로운 배열에 담아 반환한다.var arr = [1, -2, 3, -4]; // 배열 arr의 각 요소마다 Math.abs() 함수가 호출되고 그 결괏값이 배열로 저장됨. var absoluteValues = arr.map(Math.abs); absoluteValues; // [1,2,3,4] (Math.abs는 주어진 숫자의 절대값을 반환하는 함수.)
- filter(): 해당 배열의 모든 요소에 대하여 반복적으로 명시된 콜백 함수를 실행한 후, 그 결괏값이 true인 요소들만을 새로운 배열에 담아 반환한다.
var arr = [-10, 5, 100, -20, 40]; function compareValue(value) { return value < 10; } var lessTen = arr.filter(compareValue); lessTen; // [-10,5,-20]