2차원 배열(배열을 요소로 갖는 배열)을 입력받아 각 배열을 이용해 만든 객체를 리턴해야 합니다.
입력
인자 1 : arr
arr[i]
는 string
타입을 요소로 갖는 배열arr[i].length
는 0 또는 2출력
arr[i]
의 첫 번째 요소를 키, 두 번째 요소를 값으로 하는 객체를 리턴해야 합니다.주의 사항
arr[i]
의 길이가 0인 경우, 무시합니다.const arr = [
['make', 'Ford'],
['model', 'Mustang'],
['year', '1964'],
['make', 'Bill'],
];
let output = convertListToObject(arr);
console.log(output) // -->
{
make : 'Ford'
model : 'Mustang',
year : '1964'
}
핵심 내용
나의 시도
참고자료 : Array.prototype.flat()
function convertListToObject(arr) {
// TODO: 여기에 코드를 작성합니다.
if (arr.length === 0) return {};
return Object.fromEntries(arr);
}
참고 자료 : **JavaScript - 배열을 객체로 변환, 4가지 방법**
function convertListToObject(arr) {
// TODO: 여기에 코드를 작성합니다.
let idxArr = [];
for (let i = 0; i < arr.length; i++) {
idxArr = [...idxArr, arr[i][0]];
idxArr.filter((el, idx) => idxArr.indexOf(el) === idx);
}
console.log(idxArr);
}
참고 자료:
[Javascript] 배열 중복 제거하는 3가지 방법
[Javascript] 배열의 특정 값 찾기 - find(), filter()
indexOf MDN
Object.key MDN
정답
function convertListToObject(arr) {
let result = {};
for (let i = 0; i < arr.length; i++) {
if (arr[i].length > 0 && result[arr[i][0]] === undefined) {
result[arr[i][0]] = arr[i][1];
}
}
return result;
}
분석
function convertListToObject(arr) {
let result = {}; // 빈 객체 생성
for (let i = 0; i < arr.length; i++) {
// arr의 i번째 요소 길이가 0보다 커야함
// result[arr[i][0]] = arr[i][1];
// result['키'] 에 '값' 할당
// result[arr[i][0]] -> result['키'] 에 값이 할당되어 있다면
// 넘어가기 (없을 때에만 넣기)
if (arr[i].length > 0 && result[arr[i][0]] === undefined) {
result[arr[i][0]] = arr[i][1];
}
}
return result;
}