티스토리 뷰

반응형
sort( ) - 배열 정렬(내림차순, 오름차순)

 

console.log([1,6,5,33,7,111].sort((a,b)=>a-b)) // 오름차순 [ 1, 5, 6, 7, 33, 111 ]

console.log([1,6,5,33,7,111].sort((a,b)=>b-a)) // 내림차순 [ 111, 33, 7, 6, 5, 1 ]

 

indexOf( ) - 배열에서 특정 요소를 찾아 인덱스 반환, 특정 요소 존재하지 않으면 -1 반환

 

* 배열안에서 요소의 순위 구할 때 사용 (프로그래머스 코테 입문 중 진료순서구하기 문제)

const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];

console.log(beasts.indexOf('bison')); // 1 (첫번째 bison가 인덱스 1에 위치

console.log(beasts.indexOf('bison', 2)); // 4 (두번째 bison가 인덱스 4에 위치)

console.log(beasts.indexOf('giraffe')); // -1 (배열에 없음)

 

map( ) - 배열의 요소 하나씩 꺼내기

 

* 배열 안에서 하나씩 꺼낸 요소가 어떤 객체의 키값과 같다면 요소를 사용해 객체에서 값을 구할 수 있음

(프로그래머스 모스부호 문제)

function solution1(letter) {
    const morse = { 
        '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
        '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
        '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
        '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
        '-.--':'y','--..':'z'
    }
    return letter.split(' ').map((e)=>morse[e]).join('')
}

console.log(solution1(".... . .-.. .-.. ---")) //hello

 

slice ( ) - 배열에서 일부 요소를 추출하여 새로운 배열로 반환
*원본 배열은 변경되지 않음

 

arr.slice([start[, end]])

start : 추출을 시작할 인덱스, 생략하면 0부터 추출 가능, 음수를 사용하면 배열 끝에서부터 인덱싱

end : 추출을 끝 낼 인덱스,  인덱스-1의 요소가 추출

 

'start' 인덱스부터 'end' 인덱스 이전까지의 요소를 새로운 배열로 추출해줌

const arr = ['apple', 'banana', 'cherry', 'durian'];
const slicedArr = arr.slice(1, 3); //arr배열에서 인덱스 1부터 인덱스 3이전인 2까지의 요소를 추출

console.log(arr); // ["apple", "banana", "cherry", "durian"] //원본 배열 변경되지 않음
console.log(slicedArr); // ["banana", "cherry"]

 

 

splice( ) - 배열에서 추가, 제거, 교체된 요소를 추출하여 새로운 배열로 반환
*원본 배열을 수정하여 수정된 배열을 반환

 

arr.splice(start[, deleteCount[, item1[, item2[, ...]]]])

start : 배열에서 수정을 시작할 위치를 나타내는 인덱스

deleteCount : 배열에서 제거할 요소의 개수 * 0인 경우 요소를 삭제하지 않고 새로운 요소 추가 할 수 있음

item1, item2 : 배열에 추가 or 수정할 요소

 

'start' 인덱스 부터 'deleteCount' 개수 만큼의 요소가 제거되고 'item1, item2'로 수정됨

const arr = ['apple', 'banana', 'cherry', 'durian'];
const removedArr = arr.splice(1, 2, 'orange', 'pear'); // arr의 인덱스 1부터 2개의 요소를 제거(제거된 요소로 새로운 배열을 만들)

console.log(arr); // ["apple", "orange", "pear", "durian"] //원본 배열 변경
console.log(removedArr); // ["banana", "cherry"] //arr에서 삭제된 요소 바나나, 체리 담은 새로운 배열 반환
const arr = [1,2,3,4,5,6,7,8,9,10]
console.log(arr.slice(1,5)) //[2,3,4,5]
console.log(arr.splice(1,5)) //[2,3,4,5,6]

 

 

*프로그래머스 2차원으로 만들기 문제

function solution(list,n){
    const arr = []
    while(list.length){
        // arr.push(list.splice(0,n))
        const newArr = (list.splice(0,n))
        arr.push(newArr)
    }return arr
}

console.log(solution([1,2,3,4,5],2)) //[ [ 1, 2 ], [ 3, 4 ], [ 5 ] ]

 

includes( ) - 배열에서 특정요소 포함하고 있는지 판별

 

*프로그래머스 배열의 유사도 문제

function solution(arr1,arr2){
    return arr1.filter(e=>arr2.includes(e))
}

console.log(solution(["a", "b", "c"], ["com", "b", "d", "p", "c"])) //[ 'b', 'c' ]

배열 arr2에 배열 arr1의 요소가 포함되어 있는지 확인가능

 

 

reduce( )

 

reduce는 4가지 인자를 가진다

const arr = [1,2,3,4,5]


const initialValue = 0; 
reduce((accumulator,currentValue)=>{
	accumulator + currentValue
}, initialValue)

accumulator 누적값

currentValue 현재 처리할 요소

initialValue 콜백함수에 제공하는 초기값, 초기값을 제공하지 않으면 배열의 첫번째 요소를 사용

빈배열에서는 초기값 없이 reduce( )를 사용하면 오류 발생함 (왜냐 요소를 사용할게 없어서)

https://www.youtube.com/watch?v=g1C40tDP0Bk

 

 

*프로그래머스 자릿수 더하기

function solution(n){
    return n.toString().split('').map(e=>parseInt(e)).reduce((acc,cur)=>acc+cur)
}

console.log(solution(123)) //6

1. n을 문자열로 바꾼 후

2. split 사용해 배열안에 담고

3. parseInt로 배열 안에있는 문자열을 숫자로 바꾸고

4. reduce으로 배열의 요소 더하기

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함