checkTheBucket.js (8kyu 81)
Codewars 알고리즘 풀이
Problem
- You need to check if there is gold in the bucket, and if so, return true, if not, return false.
- bucket에 gold가 있으면 true를 반환하고, 없으면 false를 반환한다.
Solution 01
function checkTheBucket(bucket) {
let check = bucket[0];
for (let i = 0; i < bucket.length; i++) {
if (bucket[i] !== check) return true;
}
return false;
}
checkTheBucket(['stone', 'stone', 'stone', 'stone']); // false
checkTheBucket(['stone', 'stone', 'stone', 'gold']); // true
Solution 02
function checkTheBucket(bucket) {
return bucket.includes('gold');
}
checkTheBucket(['stone', 'stone', 'stone', 'stone']); // false
checkTheBucket(['stone', 'stone', 'stone', 'gold']); // true
includes()
메소드특정 값이 있는지 확인하고, true/false를 반환한다.
Solution 03
function checkTheBucket(bucket) {
if (bucket.indexOf('gold') !== -1) {
return true;
} else {
return false;
}
}
checkTheBucket(['stone', 'stone', 'stone', 'stone']); // false
checkTheBucket(['stone', 'stone', 'stone', 'gold']); // true
indexOf()
메소드주어진 값이 처음으로 나타나는 위치를 반환한다.
일치하는 값이 없으면 -1을 반환한다.
Solution 04
function checkTheBucket(bucket) {
return bucket.indexOf('gold') !== -1;
}
checkTheBucket(['stone', 'stone', 'stone', 'stone']); // false
checkTheBucket(['stone', 'stone', 'stone', 'gold']); // true
Solution 05
function checkTheBucket(bucket) {
return bucket.find(i => i === 'gold') ? true : false;
}
checkTheBucket(['stone', 'stone', 'stone', 'stone']); // false
checkTheBucket(['stone', 'stone', 'stone', 'gold']); // true
find()
메소드테스트를 통과한 배열의 첫 번째 element 값을 반환한다.