프로그래머스 문제를 풀다가 배열 내에서 무언가를 찾고싶을때! 사용하는 메서드에 대해 정리하고자 글을 써봅니다 !
ex) arr.indexOf, arr.lastIndexOf, includes
이는 하는일이 모두 같으나 대상이 문자열이 아닌 배열의 요소라는 점에서 다릅니다.
객체로 이루어진 배열이 있다고 가정해보았을때, 특정 조건에 부합하는 객체를 배열내에서 찾을때 arr.find(fn)을 사용할 수 있습니다.
let users = [
{id: 1, name: "John"},
{id: 2, name: "Pete"},
{id: 3, name: "Mary"}
];
let user = users.find(item => item.id == 1);
alert(user.name); // John
find 메서드는 함수의 반환값을 true로 만드는 단 하나의 요소를 찾습니다. 조건을 충족하는 요소가 여러개라면 arr.filter(fn)을 사용하면 됩니다.
2019 카카오 블라인드 리크루팅 문제이지만 Lv1문제에 해당 메서드를 사용하여 쉽게 풀수있어 가져와보았습니다. 자세한건 프로그래머스 사이트에서 문제 확인해보세요 !
function solution(N, stages) {
var answer = [];
let person = stages.length;
for(let j=1;j<=N;j++){
let count = stages.filter(N=>N===j).length;
answer.push([j,count/person]);
person = person-count;
}
answer = answer.sort((a,b)=> b[1]-a[1]);
return answer.map(a=>a[0]);
}