문제

  • 'needle'을 하나 포함하고 있는 배열이 있다.
  • 'needle'의 위치를 반환한다.

Haystacks

const haystack_01 = [4, '2019', undefined, 'needle'];
const haystack_02 = ['thread', true, 'needle', 2019];
const haystack_03 = [false, 'thread', 8688, 'code'];

풀이 01

function findNeedle(haystack) {
  for (let i = 0; i < haystack.length; i++) {
    if (haystack[i] === 'needle') {
      return i;
    }
  }
}

findNeedle(haystack_01);  // 3
findNeedle(haystack_02);  // 2
findNeedle(haystack_03);  // undefined or -1

풀이 02

function findNeedle(haystack) {
  return haystack.indexOf('needle');
}

findNeedle(haystack_01);  // 3
findNeedle(haystack_02);  // 2
findNeedle(haystack_03);  // undefined or -1
  • indexOf(): 주어진 값이 처음으로 나타나는 위치를 반환한다. 일치하는 값이 없으면 -1을 반환한다.