javascript - 过滤器后reduce的目的以及为什么过滤器内部调用map?

标签 javascript

我首先有点困惑为什么我们在过滤器中使用 map 函数以及 reduce 在这段代码中做了什么。我仍在学习,这让我很困惑,请帮忙。

这就是这段代码应该做的事情:

Function that looks through an array of objects (first argument) and returns an array of all objects that have matching name and value pairs (second argument). Each name and value pair of the source object has to be present in the object from the collection if it is to be included in the returned array.

function whatIsInAName(collection, source) {
  var srcKeys = Object.keys(source);
  // filter the collection
  return collection
.filter(x => srcKeys.map(y => x.hasOwnProperty(y) && x[y] === source[y])
.reduce((a, b) => a && b))
}

// test here
console.log(
  whatIsInAName([{
    "apple": 1,
    "bat": 2
  }, {
    "bat": 2
  }, {
    "apple": 1,
    "bat": 2,
    "cookie": 2
  }], {
    "apple": 1,
    "bat": 2
  })
)

最佳答案

第一个参数(集合)将处理一堆的主要源,第二个参数(源)将处理要搜索的确切行。 在上面的情况下,返回的结果将由对象数组组成,其中整行将由一堆的主要来源组成。 因此,如果集合对象中两个键(apple 和 bat)都可用,它将返回该对象。

关于javascript - 过滤器后reduce的目的以及为什么过滤器内部调用map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59792317/

相关文章:

javascript - 我可以使用 Watson Conversation 制作全页聊天机器人吗?

javascript - 如何修复仅返回 else 语句的 if 函数

javascript - 函数仅在调用它的最新元素上运行

用于按多个条件对对象中的数组进行排序的 JavaScript 算法

javascript - scriptlet 的文本框值

javascript - 从 RSS 提要中提取 XML 元素值

javascript - 谷歌图表 : “Uncaught (in promise) Error: Unknown header type: 4.7278” error

javascript - 使用ajax从php文件获取随机数不会更新新结果

javascript - 在保留滚动的同时禁用滚动条

javascript - 为什么java无法解密CryptoJS加密数据?