01
조건
['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' } ];
처음에는 반복문을 통해서 각각 배열의 인덱스 [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)
}