문제

  • bucket에 gold가 있으면 true를 반환하고, 없으면 false를 반환한다.

풀이 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

풀이 02

function checkTheBucket(bucket) {
  return bucket.includes('gold');
}

checkTheBucket(['stone', 'stone', 'stone', 'stone']);  // false
checkTheBucket(['stone', 'stone', 'stone', 'gold']);   // true
  • includes(): 특정 값이 있는지 확인하고, true/false를 반환한다.

풀이 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을 반환한다.

풀이 04

function checkTheBucket(bucket) {
  return bucket.indexOf('gold') !== -1;
}

checkTheBucket(['stone', 'stone', 'stone', 'stone']);  // false
checkTheBucket(['stone', 'stone', 'stone', 'gold']);   // true

풀이 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 값을 반환한다.