var array1 = [0, 1, 2, 3, 4, 5];
array1.push(1111);// 마지막에 추가
array1.unshift(2222);// 처음에 추가
var first1 = array1.pop();// 마지막 원소 제거
var last1 = array1.shift();// 처음 원소 제거
...
// slice 는 원본 배열을 훼손하지 않는다.
array1.slice(2);// index 2 원소부터 마지막까지의 sublist 반환
array1.slice(2, 5);// index 2 원소부터 index 4(5 - 1) 원소까지의 sublist 반환
array1.slice(2, 5); 는 아래와 같이 바꿔 쓸 수 있다.
Array.prototype.slice.apply(array1, [2, 5]);
Array.prototype.slice.call(array1, 2, 5);
===== 테스트 코드 =====
var array1 = [0, 1, 2, 3, 4, 5];
console.log(array1);//(6) [0, 1, 2, 3, 4, 5]
array1.unshift(1111);// 처음에 추가
console.log(array1);//(7) [1111, 0, 1, 2, 3, 4, 5]
array1.push(2222);// 마지막에 추가
console.log(array1);//(8) [1111, 0, 1, 2, 3, 4, 5, 2222]
console.log('pop', array1.pop());//pop 2222
console.log(array1);//(7) [1111, 0, 1, 2, 3, 4, 5]// 마지막 원소가 제거되었다.
console.log('shift', array1.shift());//shift 1111
console.log(array1);//(6) [0, 1, 2, 3, 4, 5]// 처음 원소가 제거되었다.
console.log(array1.slice(3));//(3) [3, 4, 5]
console.log(array1.slice(2, 5));//(3) [2, 3, 4]
console.log(array1);//(6) [0, 1, 2, 3, 4, 5]
console.log(Array.prototype.slice.apply(array1, [2, 5]));//(6) [0, 1, 2, 3, 4, 5]
console.log(Array.prototype.slice.call(array1, 2, 5));//(6) [0, 1, 2, 3, 4, 5]
apply 사용법
- 함수객체.apply(this대체객체, arguments배열);
call 사용법
- 함수객체.call(this대체객체, arg0, arg1, ..., argN);
this대체객체란 함수객체안에서 사용중인 this 를 대체한다는 말이다.