Javascript 为什么此函数返回数组中的所有对象?
我试图将参数名从getAnimalByName函数传递到嵌套在其中的函数的返回值。为什么它不能正常工作?现在,如果我调用getAnimalByName,它将返回animals数组中的所有对象,而不仅仅是作为参数传递的对象Javascript 为什么此函数返回数组中的所有对象?,javascript,Javascript,我试图将参数名从getAnimalByName函数传递到嵌套在其中的函数的返回值。为什么它不能正常工作?现在,如果我调用getAnimalByName,它将返回animals数组中的所有对象,而不仅仅是作为参数传递的对象 var animals=[ {type: 'mammal', subType: 'dog', name: 'spot', weight: 50}, {type: 'reptile', subType: 'lizard', name: 'gicko', weight: 1
var animals=[
{type: 'mammal', subType: 'dog', name: 'spot', weight: 50},
{type: 'reptile', subType: 'lizard', name: 'gicko', weight: 1},
{type: 'reptile', subtype: 'snake', name: 'buba', weight: 3},
{type: 'mammal', subType: 'rat', name: 'runner', weight: 3}
];
function getAnimalByName(name){
var animal= animals.filter(function(event){
return event.name;
});
return animal;
}
var spot= getAnimalByName('spot');
var gicko= getAnimalByName('gicko');
var buba= getAimalsByName('buba');
var runner= getAnimalByName('runner');
数组#过滤器
处理程序函数(回调
)中缺少条件
var动物=[{
类型:'哺乳动物',
子类型:“狗”,
名称:'点',
体重:50
}, {
类型:“爬行动物”,
亚型:“蜥蜴”,
姓名:'gicko',
体重:1
}, {
类型:“爬行动物”,
子类型:“蛇”,
姓名:'布巴',
体重:3
}, {
类型:'哺乳动物',
亚型:'鼠',
姓名:'跑步者',
体重:3
}];
函数getAnimalByName(名称){
返回动物。过滤器(功能(事件){
return event.name==name;//此处测试参数值!
});
}
var spot=getAnimalByName('spot');
var gicko=getAnimalByName('gicko');
var buba=getAnimalByName('buba');
var runner=getAnimalByName('runner');
控制台日志(spot);
控制台日志(gicko);
控制台日志(buba);
console.log(runner)代码>您在数组#过滤器
处理程序函数(回调
)中缺少条件
var动物=[{
类型:'哺乳动物',
子类型:“狗”,
名称:'点',
体重:50
}, {
类型:“爬行动物”,
亚型:“蜥蜴”,
姓名:'gicko',
体重:1
}, {
类型:“爬行动物”,
子类型:“蛇”,
姓名:'布巴',
体重:3
}, {
类型:'哺乳动物',
亚型:'鼠',
姓名:'跑步者',
体重:3
}];
函数getAnimalByName(名称){
返回动物。过滤器(功能(事件){
return event.name==name;//此处测试参数值!
});
}
var spot=getAnimalByName('spot');
var gicko=getAnimalByName('gicko');
var buba=getAnimalByName('buba');
var runner=getAnimalByName('runner');
控制台日志(spot);
控制台日志(gicko);
控制台日志(buba);
console.log(runner)
过滤器的工作方式是在我们需要指定的函数中,无论该特定数组元素是否匹配特定条件,因此,过滤器函数在内部除了一个truthy
或一个falsy
值,并且由于您返回了event.name
,它将始终是一个truthy
值,然后,它将值推送到一个新数组中,因此它返回了整个animals数组
这就是你应该回来的原因
return event.name===name
过滤器的工作方式是在我们需要指定的函数中,无论特定数组元素是否匹配特定条件,因此,在内部,过滤器函数将排除truthy
或falsy
值,并且由于您返回了event.name
,它将始终是truthy
值,然后,它将值推送到一个新数组中,因此它返回了整个animals数组
这就是你应该回来的原因
return event.name===name