[英]Filter Object By Keys
我正在学习高阶函数并且经常遇到问题,这是非常基本的,也许我没有正确理解参数..有什么理由为什么这个解决方案不起作用?
// 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;
});
};
好吧, filter
返回一个数组。 这意味着,您至少需要返回其中的第一项。
在这种情况下,更好的方法是使用find
const input = [{ id: 42, name: 'Clojure' }, { id: 43, name: 'Haskell' }, { id: 44, name: 'Erlang' } ]; function findById(languages, id) { return languages.find(function(element) { return element.id === id; }); }; console.log(findById(input, 42));
它有效,只需要访问结果的第 0 个索引
演示
var input = [ { id: 42, name: 'Clojure' }, { id: 43, name: 'Haskell' }, { id: 44, name: 'Erlang' } ]; function findById (languages, id) { return languages.filter(function(element) { return element.id === id; }); }; console.log(findById(input,42)[0]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.