按键过滤对象

时间:2017-10-22 20:12:03

标签: 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 findById (languages, id) {
  return languages.filter(function(element) {
    return element.id === id;
  });
};

2 个答案:

答案 0 :(得分:2)

好吧,filter返回一个数组。这意味着,您至少需要返回它的第一项。

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



List<DocumentationRecord> records = findBy(DocumentationRecord.class);
List<IdAndTopic> idAndTopics = findBy(IdAndTopic.class);
&#13;
&#13;
&#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]);