[JS] 배열 메서드 (추가,삭제,더하기,정렬)

dolfin·2023년 5월 24일

JavaScript

목록 보기
6/8

아는데 모르는 ^^.. 배열 메서드를 오랜만에 정리 해보쟈

배열 요소 추가 메서드

1. .push()

const 블랙핑크 = ["제니","리사","지수"]

블랙핑크는 네명이지만 위의 배열에 한명이 빠졌다.
뉴질랜드에서 날아오는 로제를 뒤늦게 추가해주려면?

블랙핑크.push("로제") // 4

console.log(블랙핑크) // ["제니","리사","지수","로제"]

반환 값은 4가 나온다 (배열의 길이를 반환).. 블핑은 네명이니까ㅎㅎ

2. .unshift()

const 삼시세끼 = ["점심밥","저녁밥"]

삼시세끼를 먹어야하는데 까먹고 아침밥을 안 넣었다.
맨 앞에 아침밥을 넣어주려면?

삼시세끼.unshift("아침밥") // 3

console.log(삼시세끼) // ["아침밥","점심밥","저녁밥"]

마찬가지로 새로운 배열의 길이를 반환하며
새로 추가한 요소는 맨 앞에 추가 된다.

3. .splice()

splice는 기능이 많은 메스드로 기존 배열 요소를 추가, 교체, 삭제가 가능하여 배열의 내용을 수정해준다.

const 서브웨이 = ["빵", "치즈", "소스"]

서브웨이에서 샌드위치를 샀는데 알바생이 까먹고 내 야채를 넣어주지 않았다..

서브웨이.splice(2,0,"야채","할라피뇨") //  []

console.log(서브웨이) //  ['빵', '치즈', '야채', '할라피뇨', '소스']

아.. 그런데 할라피뇨 빼달라는 말을 안했네..ㅎ 할라피뇨 빼주세여

const 안먹어요 = 서브웨이.splice(3,1) // ["할라피뇨"]

console.log(서브웨이) // ['빵', '치즈', '야채', '소스']
console.log(안먹어요) // ["할라피뇨"]

즉, .splice(위치,삭제갯수,[추가하고싶은요소]) 이당!
반환값은 삭제한 배열 요소를 반환한다.
위에서는 ["할라피뇨"]가 반환된다.
삭제한 값이 없으면 빈 배열이 반환 된다.

배열 요소 합치는 메서드

1. .concat()

const 과일 = ["사과","귤","포도","딸기"]
const 아이스크림 = ["빵또아", "누가바", "구구콘"]

과일.concat(아이스크림) // ['사과', '귤', '포도', '딸기', '빵또아', '누가바', '구구콘']

console.log(과일) // ["사과","귤","포도","딸기"]

```js
과일 배열과 아이스크림을 배열을 더할수 있는 메서드이다!
이 메서드는 기존 배열을 수정하지는 않는다. 빵또아는 과일이 아니니까..
추가된 새로운 배열을 반환하게 됨!

```js
const 간식  = 과일.concat(아이스크림)
console.log(간식) // ['사과', '귤', '포도', '딸기', '빵또아', '누가바', '구구콘']

2. Spread 연산자 (전개구문)

const 과일 = ["사과","귤","포도","딸기"]
const 아이스크림 = ["빵또아", "누가바", "구구콘"]

const 간식 = [...과일,...아이스크림]

전개구문을 쓰면 더 쉽게 배열 요소를 합칠 수 있다.
push,unshift, concat 대신 사용이 가능하다.

배열 요소 삭제 메서드

1. .slice()

const SNS = ["insta", "facebook", "kakaotalk", "버디버디", "싸이월드"]

자주 쓰는(쓰던) SNS 배열에서 현재 운영되고 있지 않은 SNS들을 삭제하려고 한다. 요즘 사람들은 버디버디 모르겠지.. 🥲

SNS.slice(3) // ["버디버디", "싸이월드"]
SNS.slice(3,5) // ["버디버디", "싸이월드"]
SNS.slice(-2)  // ["버디버디", "싸이월드"]

반환은 새로운 배열을 반환한다.

첫번째 인자는 시작점이다. 시작은 0부터 시작한다. -1 은 맨 뒤 요소이다
slice(-2) 는 맨뒤에 요소 두개를 반환한다.

두번째 인자는 본인 인덱스 숫자를 제외하고 추출한다.
예를 들어 slice(1,4) 1,2,3 을 추출하게 됨
마찬가지로 인덱스가 음수이면 뒤에서 부터 숫자를 센다.


출처 : https://hianna.tistory.com/398

두번째 인자가 생략된다면 ㄱ요소 끝까지 나오게 된다.

배열 요소 정렬 메서드

const arr = ["banana", "apple", "carrot"]
const arr1 = [3,1,2]
arr.sort() 
arr1.sort()

// ["apple", "banna", "carrot"]
// [ 1, 2, 3]

sort.() 메서드는 유니코드 순서에 따라 오름차순하는 배열 메서드 이다.

이 메서드는 주의해야할점이 유.니.코.드.순 이라는 거다

숫자를 정렬해야할때 문제가 생긴다.

const arr2 = [10,1,2,9,11]

arr2.sort()

// (5) [1, 10, 11, 2, 9]

유니코드 순서로 정렬을 하기 때문에 위처럼 원하는대로 정렬이 되지 않는다 ㅠ

숫자로 이루어진 배열 정렬하기

const arr2 = [10,1,2,9,11]

arr2.sort((a,b) => a-b) 

// (5) [1, 2, 9, 10, 11]

arr2.sort((a,b) => b-a) 
// (5) [11, 10, 9, 2, 1]
profile
no risk no fun

0개의 댓글