我正在学习高阶函数并经常遇到麻烦,这是非常基础的,也许我不能正确理解参数。这有什么理由说明这个解决方案不起作用吗?
// 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 :(得分:2)
好吧,filter
返回一个数组。这意味着,您至少需要返回它的第一项。
在这种情况下,更好的方法是使用find
List<DocumentationRecord> records = findBy(DocumentationRecord.class);
List<IdAndTopic> idAndTopics = findBy(IdAndTopic.class);
&#13;
答案 1 :(得分:0)
它有效,只需要访问结果的第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]);