繁体   English   中英

按键过滤对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM