배열 추가, 삭제, 합치기

이름뭐라하지·2021년 11월 11일
0

1. 배열 추가

Array.prototype.push()

배열의 끝에 요소를 추가한다. 배열의 새로운 길이를 반환한다.

예시

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]

Array.prototype.unshift()

배열의 앞에 요소를 추가한다. 배열의 새로운 길이를 반환한다.

예시

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' ]

2. 배열 삭제

Array.prototype.pop()

배열의 마지막 요소를 삭제하고 삭제한 요소를 반환한다.

예시

let arr =['a', 'b', 'c', 'd']

let popped = arr.pop();

console.log(arr); // ['a', 'b', 'c']

console.log(popped); // 'd'

Array.prototype.shift()

배열의 앞에 요소를 삭제하고 삭제한 요소를 반환한다.

예시

let arr =['a', 'b', 'c', 'd']

let shifted = arr.shift();

console.log(arr); // ['b', 'c', 'd']
console.log(shifted); // 'a'

3. 배열 추가&삭제

Array.prototype.splice()

배열의 특정 위치의 요소를 삭제, 추가, 교체하여 기존 배열을 변경한다. 제거한 요소를 담은 배열을 반환한다.

array.splice(start, deleteCount, item1, item2,itemN)

start
배열의 변경을 시작할 인덱스
array.lenth보다 큰 값이면 실제 시작 인덱스는 배열의 길이로 설정된다.
음수값이면 array.length + start로 취급한다.
값의 절대값이 배열의 길이 보다 크면 0으로 설정된다.

deleteCount
배열에서 제거할 요소의 수. 옵션
deleteCount를 생략하거나 값이 array.length - start보다 크면 start부터의 모든 요소를 제거한다.
deleteCount가 0 이하라면 어떤 요소도 제거하지 않는다.

item1, item2, ...
배열에 추가할 요소. 옵션
아무 요소도 지정하지 않으면 splice()는 요소를 제거만 한다.

예시1-추가

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']

예시2-삭제

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']

예시3-교체

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 ]

4. 함수 사용없이 배열 추가&삭제

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']

참고. 배열 합치기

Array.prototype.concat()

인자로 주어진 배열 혹은 값들을 기존 배열에 합쳐 '새로운 배열'을 반환한다.
기존 배열이 변경되는 것이 아님

두 개의 배열 합치기

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()와 달리 변경 안 됨
profile
뱃사공1 노질 중

0개의 댓글