[알고리즘] 자주쓰는 기술

노호준·2023년 9월 13일
0

Set

  • 배열 중복제거용
const answer = [...new Set(arr1)]

sort

오름차순

const answer = arr1.sort((a,b) => a-b) //1,2,3..

내림차순

const answer = arr1.sort((a,b) => b-a) //7,6,5...

slice

제시한 시작요소 ~ 제시한 끝요소 - 1 인 배열을 리턴

const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
arr1 = animals.slice(2,4)  // ['camel','duck']
arr1 = animals.slice(2) // ['camel', 'duck', 'elephant']

splice

용도 : 기존 요소 삭제 or 새 요소 추가
splice(시작요소의 인덱스, 시작요소부터 없앨 개수, 추가할요소1, 추가할요소2,....)
arr1 = [1,2,3,4,5]가정
1. 하나도 제거하지 않고 2번 인덱스에 "drum" 추가
arr1.splice(2,0,"drum") // [1,2,"drum",3,4,5]
2. 하나도 제거하지 않고 2번 인덱스에 "drum", "guitar" 추가
arr1.splice(2,0,"drum","guitar") // [1,2,"drum","guitar",3,4,5]
3. 2번 인덱스에서 한개 제거하고 "trumpet"추가
arr1.splice(2,1,"trumpet") // [1,2,"trumpet",4,5]
4. 2번 이후로 모두 삭제
arr1.splice(2) // [1,2]

replace

특정문자열을 없애거나 교체

str = 'chicken noodle soup'.replace('chicken','') // str === ' noodle soup'

filter

조건문에 맞는요소만 있는 배열을 리턴
arr1 = [1,2,3,4,5]가정
value : 배열요소
index : value의 인덱스

const answer = arr1.filter((value, index) => value * index > 5)

map

모든 요소에 동일하게 적용한 배열을 리턴

const answer = arr1.map((value, index) => { return value * index})

reduce

초기값부터 하나씩 더해서 누적값 리턴 ( 초기값 없으면 0번째값이 초기값)
acc : 누산값
cur : 현재요소

const answer = arr1.reduce((acc, cur) => acc+cur)

타입변경

Number('9')      // str -> 9
9.toString()     // num -> str "9"
'abc'.split('')    //str -> arr ["a","b","c"]
["a","b","c"].join('') // arr -> str "abc"    

reverse

arr1.reverse() // [1,2,3] => [3,2,1]

repeat

"abc".repeat(2); // 'abcabc'

replaceAll

특정단어 or 문자 변경

const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';

p.replaceAll('dog', 'monkey')    // 단어 바뀐 새문장

Array.fill

특정값만으로 배열 채우기

let arr = new Array(10).fill(0);  //10개 요소를 0으로 채움 [0,0,0,0,0,0,0,0,0,0]
  • 이차원 배열 만들때는 for문 안에 두거나 map으로
    for(let i = 0; i<10; i++){
        let arr = new Array(10).fill(0);
        Matrix.push(arr);
    }
    //아니면
    let Matrix = Array(10).fill().map(() => Array(10).fill(0));

Math.max

요소중 최대값 리턴해줌, 배열 그대로넣으면 안됨

Math.max(1,2,3) // 3
Math.max(...arr1) // arr1의 최대값리턴

padStart

글자수가 첫번째요소 가 될때까지 앞에 두번째요소를 넣는다

"abc".padStart(10, "foo"); // "foofoofabc"

0개의 댓글