Array.map()

김진겸·2023년 1월 18일
0

TIL

Array.map()과 오늘 내가 사용한 방식을 정리한다.(2023.01.18)
Array.map()는 배열의 모든 요소에 작성한 함수를 적용한 결과를 모아서 반환한다.
자세한 설명보다는 내가 오늘 어떤 상황에서 어떻게 사용했는지를 정리하겠다.
자세한 설명은 MDN을 참고하자MDN의 Array.map()설명

  • 상황1
    상황: 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야한다.
new Array(n).fill(1)map((num,i)=>{                
    return (i+num)*x
               		 })

정리:map((num,i)=>{return (i+num)x})에서 인자로 num,i를 넣었는데 num은 현재요소에 해당하고,i는 현재인덱스에 해당한다.
그리고 return하는것은 (i+num)
x의 결과값은 인덱스값과 요소의 합에 x를 곱한 값이다.
이 값을 기존의 배열에 다시 순서대로 모은다.

  • 상황2
    너무 길기에 직접 작성하진 않고 링크를 첨부했다.상황2문제
const answer =commands.map((el)=>{
        const result = array.slice(el[0]-1,el[1]).sort((a,b)=>{return a-b
        })

여기서는 상황1과 달리 매개변수에 하나만 작성했다. 이때는 현재 처리할 요소만 가져오게 된다.

추가 예)

const arr1=[[1,2],[2,3]]
const arr2=[[3,4],[5,6]]
 return arr1.map((a,i) => consolr.log(a),a.map((b, j) => b + B[i][j]));

(2023.01.30)
arr1과 arr2의 각x번째,y번째(x,y는 정수) 요소를 더해서 반환해야 하는 상황이었다.
위 예의 결과는 [[4,6],[7,9]]이다. 배열의 요소에 각 함수를 적용해서 다시 배열을 반환해야하는 경우이다. 이럴때 반복문을 사용할 수도 있지만 map을 이용할수도 있다.
이번상황에서는 map을 두번이용하게 되었는데 이유는 arr1의 요소가 배열이기 때문이다.
이런식으로 사용할 수 도 있음을 알아두자.

profile
성장에 목마른 입문자입니다!

0개의 댓글