20.06.22 TIL

김지욱·2020년 8월 29일
0

코드스테이츠

목록 보기
1/38

오늘 한 일

  • Javascript Algorithms 문제를 풀었다.
  • 오늘 풀었던 문제들은 객체 타입에서 배열로 반환하거나 그 반대의 경우에 관한 문제가 대부분이었다.
  • 객체와 배열의 개념에 대해서 제대로 이해하고 있지 못해서 초반의 문제 해결이 생각보다 어려웠다
  • 각가의 요소, 키, 인덱스 등, 무엇을 나타내는지 개념에 대해서 잘 이해를 하고 있어야겠다.

오답노트


01

조건

  • 배열의 첫 번째 요소를 객체의 키(key)로 가진다.
  • 배열의 마지막 요소를 해당 키의 값(value)으로 가진다.

['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce']

주어진 배열을 키의 값을 가지는 객체로 반환해야 하는 문제였다.
처음에는 배열의 요소를 구해서, 그 값들을 합쳐서 output 예시처럼 만들어야 한다고 생각했다.

오답

   let result = {}; 
   let firstName = array[0] + ':'; 
   let lastName = array[array.length - 1]; 
   result = result + firstName + ' ' + lastName

객체와 배열의 특징을 잘 이해했다면 쉽게 풀수 있는 문제였다.

임의 객체를 만들고

let obj = {};

배열의 첫 번째 인덱스를 객체의 키 값으로 지정한다.

obj [ array[0] ]
obj [ array[0] ] = array[array.length - 1]

input 사원들의 정보

let array = [
  [
    ['firstName', 'Joe'],
    ['lastName', 'Blow'],
    ['age', 42],
    ['role', 'clerk']
  ],
  [
    ['firstName', 'Mary'],
    ['lastName', 'Jenkins'],
    ['age', 36],
    ['role', 'manager']
  ]
];

Output

[ { firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk' }, 
{ firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager' } ];
  • 입력값Input에 다른 사원들의 정보가 추가될 수 있다.

처음에는 반복문을 통해서 각각 배열의 인덱스 [i] 값을 구해서 객체의 키 값으로 만들려고 했다.

let obj = {};
  for( let i = 0; i < otherArray.length; i++) {
  obj[array[i][][]] = otherArray[i][][]
  } return obj
 }

조건이 하나로는 안될 거 같고, 복잡해질거 같아서 map함수를 이용했다.

function getList(otherArray) {     
  let obj = {};
  for(let i = 0; i < otherArray.length; i++) {
  obj[otherArray[i][0]] = otherArray[i][1]  
 } return obj
}

Input 배열의 요소들을 키값으로 받는 객체를 생성하는 함수를 만들어서 적용시켰다.

function transformEmployeeData(array) {
  return array.map(getList) 
 }

0개의 댓글