배열의 끝에 요소를 추가한다. 배열의 새로운 길이를 반환한다.
let arr =['a', 'b', 'c', 'd']
arr.push(5)
console.log(arr) // [ 'a', 'b', 'c', 'd' ,5]
arr.push(6, 7, 8)
console.log(arr) // [ 'a', 'b', 'c', 'd' ,5, 6, 7, 8]
(쓸 일이 있을까)
두 번째 배열이 너무 클 경우 쓰면 안 된다.
let alpha = ['a', 'b', 'c', 'd']
let num = [5, 6, 7, 8]
//합치기
// alpha.push(5, 6, 7, 8) 하는 것과 동일
Array.prototype.push.apply(alpha, num)
console.log(alpha); // [ 'a', 'b', 'c', 'd' ,5, 6, 7, 8]
배열의 앞에 요소를 추가한다. 배열의 새로운 길이를 반환한다.
let arr =['a', 'b', 'c', 'd']
arr.unshift(5)
console.log(arr) // [ 5, 'a', 'b', 'c', 'd' ]
arr.unshift(6, 7, 8)
console.log(arr) // [ 6, 7, 8, 5, 'a', 'b', 'c', 'd' ]
(굳이 해 봄)
이것도 두번째 배열이 너무 크면 안 될 듯
let alpha = ['a', 'b', 'c', 'd']
let num = [5, 6, 7, 8];
//합치기
// alpha.unshift(5, 6, 7, 8) 하는 것과 동일
Array.prototype.unshift.apply(alpha, num)
console.log(alpha); // [ 5, 6, 7, 8, 'a', 'b', 'c', 'd' ]
배열의 마지막 요소를 삭제하고 삭제한 요소를 반환한다.
let arr =['a', 'b', 'c', 'd']
let popped = arr.pop();
console.log(arr); // ['a', 'b', 'c']
console.log(popped); // 'd'
배열의 앞에 요소를 삭제하고 삭제한 요소를 반환한다.
let arr =['a', 'b', 'c', 'd']
let shifted = arr.shift();
console.log(arr); // ['b', 'c', 'd']
console.log(shifted); // 'a'
배열의 특정 위치의 요소를 삭제, 추가, 교체하여 기존 배열을 변경한다. 제거한 요소를 담은 배열을 반환한다.
start
배열의 변경을 시작할 인덱스
array.lenth보다 큰 값이면 실제 시작 인덱스는 배열의 길이로 설정된다.
음수값이면 array.length + start로 취급한다.
값의 절대값이 배열의 길이 보다 크면 0으로 설정된다.
deleteCount
배열에서 제거할 요소의 수. 옵션
deleteCount를 생략하거나 값이 array.length - start보다 크면 start부터의 모든 요소를 제거한다.
deleteCount가 0 이하라면 어떤 요소도 제거하지 않는다.
item1, item2, ...
배열에 추가할 요소. 옵션
아무 요소도 지정하지 않으면 splice()는 요소를 제거만 한다.
let arr =['a', 'b', 'c', 'd', 'e']
//2번 인덱스부터 하나의 요소 추가
arr.splice(2, 0, 3) //[] 제거한 요소가 없으므로 반환은 빈 배열
console.log(arr) //['a', 'b', 3, 'c', 'd', 'e']
//3번 인덱스부터 두 개의 요소 추가
arr.splice(3, 0, 4, 5) //[] 제거한 요소가 없으므로 반환은 빈 배열
console.log(arr) //['a', 'b', 3, 4, 5, 'c', 'd', 'e']
let arr =['a', 'b', 'c', 'd', 'e']
//2번 인덱스부터 하나의 요소 제거
arr.splice(2, 1) //['c']
console.log(arr) //['a', 'b', 'd', 'e']
//3번 인덱스부터 두 개의 요소 제거
arr.splice(2, 2) //['d', 'e']
console.log(arr) //['a', 'b']
let arr =['a', 'b', 'c', 'd', 'e']
//2번 인덱스부터 하나의 요소 제거하고 하나 추가
arr.splice(2, 1, 3) //[ 'c' ]
console.log(arr) //[ 'a', 'b', 3, 'd', 'e' ]
//3번 인덱스부터 두 개의 요소 제거하고 두 개 추가
arr.splice(3, 2, 4, 5) //[ 'd', 'e' ]
console.log(arr) //[ 'a', 'b', 3, 4, 5 ]
let arr =['a', 'b', 'c', 'd', 'e']
//몇 인덱스에 뭘 넣을지
arr[arr.length] ='f' // arr = ['a', 'b', 'c', 'd', 'e', 'f']
//길이를 줄이면 줄인 만큼 뒤가 없어짐
arr.length = arr.length -1 // arr = ['a', 'b', 'c', 'd', 'e']
인자로 주어진 배열 혹은 값들을 기존 배열에 합쳐 '새로운 배열'을 반환한다.
기존 배열이 변경되는 것이 아님
let alpha = ['a', 'b', 'c', 'd']
let num = [5, 6, 7, 8]
let plus =alpha.concat(num)
console.log(plus) //['a', 'b', 'c', 'd', 5, 6, 7, 8 ]
console.log(alpha) //['a', 'b', 'c', 'd'] push()와 달리 변경 안 됨
console.log(num) //[5, 6, 7, 8] push()와 달리 변경 안 됨
let alpha = ['a', 'b', 'c', 'd']
let num = [5, 6, 7, 8]
let upper =['I', 'J', 'K']
let plus = alpha.concat(num, upper)
console.log(plus) //['a', 'b', 'c', 'd', 5, 6, 7, 8, 'I', 'J', 'K' ]
let alpha = ['a', 'b', 'c', 'd']
let plus =alpha.concat(5, 6)
console.log(plus) //['a', 'b', 'c', 'd', 5, 6]
console.log(alpha) //['a', 'b', 'c', 'd'] push()와 달리 변경 안 됨