🏋🏽 문제
2차원 배열(배열을 요소로 갖는 배열)을 입력받아 각 배열을 이용해 만든 객체를 리턴
🔍 첫 번째 풀이
function convertListToObject(arr) {
if (arr.length === 1 && arr[0].length === 0) return {} //빈배열은 빈객체로 리턴
let obj = {};
for (let i = 0; i < arr.length; i++) {
if(arr[i].length === 0 || arr[i][0] in obj ){
continue; //배열안의 요소의 요소가 비거나 이미 요소의 첫번째 값이 배열의 키로 들어가있다면 무시해라
}else {
obj[arr[i][0]] = arr[i][1]; // {"배열의 첫번째 요소":"배열의 두번째 요소"}
}
}
return obj;
}
🔍 레퍼런스 보고 고친 두 번째 풀이
function convertListToObject(arr) {
let obj = {};
for (let i = 0; i < arr.length; i++) {
//arr의 요소가 빈 배열이 아니고, arr요소의 각 첫번째 값이 obj의 키에 없다면 추가한다
if(arr[i].length !== 0 && !(arr[i][0] in obj) ){
obj[arr[i][0]] = arr[i][1];
}
}
//위 조건에 맞지 않는다면 자동으로 빈 배열 리턴된다.
return obj;
}
🔐Key Point
key in object : 해당 문자열이 객체의 키 값으로 있는지 확인할 수 있다. 결과는 true 혹은 false로 반환된다.
💡깨달은 점
- if문의 조건이 안맞을 때 아무 동작도 안하려면 continue를 쓸거라는 생각만 했는데 레퍼런스보고 조건에 맞을시에만 추가하는 방법을 생각해내지 못했었다. 하지만 continue를 썼을때 코드해석이 더 쉬울것 같다!
'Algorithm > 코플릿' 카테고리의 다른 글
Daily Coding 11 (0) | 2023.03.28 |
---|---|
Daily Coding 10 (0) | 2023.03.25 |
Daily Coding 9 (2) | 2023.03.24 |
Daily Coding 8 (0) | 2023.03.23 |
fetch API 과제 (0) | 2023.03.21 |