[Javascript] find()

미누·2023년 3월 21일
0

Javascript

목록 보기
2/9

프로그래머스 - 외계어 사전
해당 문제를 풀 때, 어떤 메소드를 사용하여 해결할까 고민하던 중 find() 함수를 써보려고 했다.
하지만, 배열 내 찾는 값의 유무에 따라 true / false 로 return 하리라 생각했던 것과는 달리 인자
(argument)를 판별 함수를 요구하고 해당 조건 만족한다면 그 첫 번째 요소의 값을 반환, 그렇지 않다면 undefined를 반환한다.


이미지 출처 - https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/find

예제 1

var friends = [
    {name: 'Son', age: 30},
    {name: 'Kane', age: 29},
    {name: 'Lucas', age: 30}
];
var result = friends.find( ({ name }) => name == 'Kane');
//result = {name: 'Kane', age: 29}

예제 2

//3번 index 값 없음
var array = ['a', 'b', 'c', , 'e'];
array.find(function(el, index) {
	console.log('key:', index, 'value:', el);
});
// 결과 : 
// key: 0 value: a
// key: 1 value: b
// key: 2 value: c
// key: 3 value: undefined
// key: 4 value: e

예제 - https://devinserengeti.tistory.com/20?category=901017

결론

배열 내 어떤 값의 존재유무를 알고싶은 경우,
includes() 메소드를 사용하는게 낫기에 이를 활용하여 풀이를 진행하였다.

function solution(spell, dic) {
    var answer = 2;
    spell = spell.sort().reduce((a,b) => a+b);
    dic = dic.map(x=> x.split('').sort().reduce((a,b)=> a+b))
    dic.includes(spell) ? answer = 1 : answer;
    return answer;
}
profile
Dev Notes, with bit of JS?

0개의 댓글