
실제로 프론트개발을 하다보면 API를 통해서 받은 데이터들이 뒤죽박죽으로 정리되지않은 형태로 들어오는 경우가 많이 있다. 만약 다음과 같은 형태의 배열을
[a1,a2,a3...,an,b1,b2...bn]다음과 같은 형태로 바꿔서 데이터를 나열해야한다면[a1,b1,a2,b2.....an,bn]어떻게 하는게 좋을까..?
let list = ['a1','a2','a3','a4','a5','b1','b2','b3','b4','b5'] // 들어온 데이터 형태
let changeList = ['a1','b1','a2','b2','a3','b3'.....] //바꿔야하는 형태
const mapping = (a,b) => a.map((v,i)=>[v,b[i]])
mapping이라는 함수에 인자로 a,b가 들어오면 a에 해당하는 배열을 map함수로 돌면서
배열의 첫번째 인덱스와 b의 i번째 인덱스를 찾아서 배열로 만든다
----> [['a1','b1'], ['a2','b2']... ] 이런 형식으로 들어가게 된다
let [left,right] = [list.slice(0,list.length/2),list.slice(list.length/2)]
들어온 데이터를 slice함수로 반으로 잘라서 각각 left, right에 넣어주고
mapping(left,right).flat() // 위의 형태로 들어온 배열을 flat 함수로 합쳐주면 된다.
아마존 면접문제 중에서 -> 문제 출처
🔑
map함수에 대한 새로운 활용 방법을 알게돼서 정리를 해 보았다.!