javascript - 为什么这个函数返回数组中的所有对象?

标签 javascript

我正在尝试将参数名称从 getAnimalByName 函数传递到嵌套在其中的函数的返回值。为什么它不能正常工作?现在,如果我调用 getAnimalByName,它将返回动物数组中的所有对象,而不仅仅是作为参数传递的对象。

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');

最佳答案

过滤器的工作方式是在我们需要指定的函数内,特定的数组元素是否匹配特定的条件,因此,过滤器函数在内部除了 truthy falsy 值,并且由于您返回了 event.name,它将始终是一个 truthy 值,并且它将值插入一个新数组,因此它返回了整个动物数组。

这就是你应该回来的原因

return event.name === 名称

关于javascript - 为什么这个函数返回数组中的所有对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37654387/

相关文章:

javascript - 三.js基础知识,shadertoy例子,如何将图案与对象一起变换?

javascript - 从 Instagram 标签请求图片不会返回全部

javascript - 在 Dynamics 表单中加载多个相关的 javascript Web 资源

javascript - Jquery 向下滑动 slider

javascript - 使用 Protractor 获取背景颜色

javascript - React 单独的实例使用单独的值调用相同的方法

javascript - 如何在 javascript 中隐藏 IE 中的空 <span>。 (注意在其他浏览器中工作正常)

javascript - 在编译时检查 javascript/typescript 对象是否对应于 C# 对象

javascript - 如何在 React Native 中的水平 ScrollView 中放置粘性 Touchable?

javascript - 如何链接到包含从下拉列表中选择的项目的页面