findNeedle.js (8kyu 14)
Codewars 알고리즘 풀이
Problem
- Write a function findNeedle() that takes an array full of junk but containing one “needle”.
- ‘needle’을 하나 포함하고 있는 배열이 있다.
- ‘needle’의 위치를 반환한다.
Haystacks
const haystack_01 = [4, '2019', undefined, 'needle'];
const haystack_02 = ['thread', true, 'needle', 2019];
const haystack_03 = [false, 'thread', 8688, 'code'];
Solution 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
Solution 02
function findNeedle(haystack) {
return haystack.indexOf('needle');
}
findNeedle(haystack_01); // 3
findNeedle(haystack_02); // 2
findNeedle(haystack_03); // -1
indexOf()
메소드주어진 값이 처음으로 나타나는 위치를 반환한다.
일치하는 값이 없으면 -1을 반환한다.