Problem
- You are given a object containing some languages and your test results in the given languages.
- Return the list of languages where your test score is at least 60, in descending order of the results.
- 테스트 점수가 60 이상인 언어 배열을 내림차순으로 반환한다.
Solution 01
function myLanguage(obj) {
let result = [];
for (let i in obj) {
if (obj[i] > 59) {
result.push(i);
}
}
return result.sort((a, b) => obj[b] - obj[a]);
}
myLanguage({ c: 10, Java: 65, Ruby: 80 }); // ['Ruby', 'Java']
myLanguage({ Python: 60, JavaScript: 99 }); // ['JavaScript', 'Python']
push()
: 배열의 끝에 새 element를 추가하고, 새로운 길이를 반환한다.
sort()
: 배열의 element를 정렬한 후, 그 배열을 반환한다.
Solution 02
function myLanguage(obj) {
return Object.keys(obj).filter(i => obj[i] > 59).sort((a, b) => obj[b] - obj[a]);
}
myLanguage({ c: 10, Java: 65, Ruby: 80 }); // ['Ruby', 'Java']
myLanguage({ Python: 60, JavaScript: 99 }); // ['JavaScript', 'Python']
Object.keys()
: 객체 고유 속성의 이름을 배열로 반환한다.
filter()
: 테스트를 통과한 배열의 각 값을 모아, 새 배열로 반환한다.