상권's

배열을 객체로, 객체를 배열로 만들어보자. 본문

~2022 작성 글/자바스크립트

배열을 객체로, 객체를 배열로 만들어보자.

라마치 2021. 9. 30. 17:14
const obj = {
  id: 1,
  city: 'changwon',
  country: 'korea',
  name: 'sangkwon',
};

const arr = [
  ["id", 1],
  ["city", "changwon"],
  ["country", "korea"],
  ["name", "sangkwon"]
],

이러한 객체와 배열이 있을 경우, 객체를 배열의 모양으로, 배열을 객체의 모양으로 바꾸는 코드를 구현해보겠습니다.

function objToArr(obj) {
  return Object.entries(obj);


function arrToObj(arr) {
  //for (let i = 0; i < arr.length; i = i + 1 ) {
  //  for (let n = 0; n < arr[i].length; n = n + 1 ) {
  //    result[arr[i][n]] = arr[i][n+1]
  //  } 
  //}
  
// reduce를 이용해서 배열의 첫번째 인덱스 값은 키로, 두번째 값은 밸류로 만든다.
  return arr.reduce((acc, cur) => {
    acc[cur[0]] = cur[1]
    return acc
  }, {})
}

function objArrToArrArr(objArr) {
  //let result = []
  //for ( let arr of objArr) {
  //result.push(Object.entries(arr))
  //};
  //return result;
  
// map을 이용해서 내부의 객체들을 arrToArr해줌으로써 배열 내부의 객체들을 배열로 만들 수 있다.
  return objArr.map((el) => objToArr(el))
}
Comments