const users = [
{id:1,name:'a'},
{id:2,name:'aa'},
{id:3,name:'aaa'},
{id:4,name:'aaaa'}
];
// 평범한 예제
console.log(users.findIndex(function(aValue) {
console.log(aValue);
return aValue.name === 'aaa' }));
// 콜백 함수
function Predicate(key, value) {
return function(item) {
return item[key] === value;
};
}
// item ??
console.log(users.findIndex(Predicate('name','aaa')));
// 뿅
console.log(users.findIndex(function Predicate(key, value) {
return function(item) {
return item[key] === value;
};
}));
// 엥
console.log(Predicate());
/**
function(item) {
return item[key] === value;
};
**/
// 뾰로롱
//console.log(users.findIndex(Predicate('name','aaa')));
console.log(users.findIndex(function(item) {
return item[key] === value;
// Predicate('name','aaa')가 실행 되면서
// key, value 인수로 전달되어 변수로 바뀐다.
// key = 'name', value = 'aaa'
// item이 findIndex 함수의 인수가 된다.
};
});
// 애초에 콘솔로 Predicate를 실행시킨 상태이므로 item = 요소값
// users.findIndex(Predicate());
클로저 미쳤다 미쳤어
재밌다