Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按关键点筛选对象_Javascript_Function_Object_Filter - Fatal编程技术网

Javascript 按关键点筛选对象

Javascript 按关键点筛选对象,javascript,function,object,filter,Javascript,Function,Object,Filter,我在学习高阶函数时经常遇到问题,这是非常基本的,也许我没有正确理解参数。有什么原因导致这个解决方案不起作用吗 // Sample Input: // [ // { id: 42, name: 'Clojure' }, // { id: 43, name: 'Haskell' }, // { id: 44, name: 'Erlang' } // ], 42 // Expected Output: // { id: 42, name: 'Clojure' } function fi

我在学习高阶函数时经常遇到问题,这是非常基本的,也许我没有正确理解参数。有什么原因导致这个解决方案不起作用吗

// Sample Input:
// [
//   { id: 42, name: 'Clojure' },
//   { id: 43, name: 'Haskell' },
//   { id: 44, name: 'Erlang' }
// ], 42

// Expected Output:
// { id: 42, name: 'Clojure' }

function findById (languages, id) {
  return languages.filter(function(element) {
    return element.id === id;
  });
};

它可以工作,只需要访问结果的第0个索引

演示
var输入=[
{id:42,名称:'Clojure'},
{id:43,名字:'Haskell'},
{id:44,名称:'Erlang'}
];
函数findById(语言,id){
返回语言.过滤器(函数(元素){
return element.id==id;
});
};
log(findById(input,42)[0])嗯,返回一个数组。也就是说,您至少需要返回它的第一项

在这种情况下,更好的方法是使用

const输入=[{
id:42,
姓名:“Clojure”
},
{
id:43,
姓名:“哈斯克尔”
},
{
身份证号码:44,
名称:'Erlang'
}
];
函数findById(语言,id){
返回语言。查找(函数(元素){
return element.id==id;
});
};

log(findById(输入,42))
如果您有
],它会将输入分配给42,42
过滤器的末尾返回一个包含所有匹配元素的数组,如果没有匹配,则返回一个空数组。如果只想返回第一个匹配的对象,则使用
find
(如果不匹配,则返回第一个匹配的对象或
null
)@Slai我认为注释位是用于调用函数
findById
:数组将是
语言
参数,
42
将是
id
参数。我认为在某些情况下,id的类型是不同的,因此有时
“42”==42
等于
false
。在这种情况下,我建议您在进行比较之前将所有数据解析为整数。如果你是js初学者,请阅读更多关于
==
)!