gpt4 book ai didi

javascript - 了解函数的返回值

转载 作者:行者123 更新时间:2023-11-30 00:00:03 24 4
gpt4 key购买 nike

所以我在 freecodecamp 上做了一些挑战,我被困在一个说:“制作一个查看对象数组(第一个参数)并返回具有匹配属性和值对(第二个参数)的所有对象的数组。”所以我寻找答案并遇到了下一个代码:

function whatIsInAName(collection, source) {
var arr = [];
var keys = Object.keys(source);
// Filter array and remove the ones that do not have the keys from source.
arr = collection.filter(function(obj) {
return keys.every(function(key) {
return obj.hasOwnProperty(key) && obj[key] === source[key];
});
});

return arr;
}

我明白它做了什么我似乎无法得到的是 collection.filter 中的返回,为什么我们需要这两个:

    return keys.every(function(key) {
return obj.hasOwnProperty(key) && obj[key] === source[key];

为什么代码不适用于第二个代码。

谁能给我解释一下。

最佳答案

这段代码:

arr = collection.filter(function(obj) {
return keys.every(function(key) {
return obj.hasOwnProperty(key) && obj[key] === source[key];
});

首先,(这是检查Collection的元素是否与源匹配的主要脚本)

keys.every(function(key) {
return obj.hasOwnProperty(key) && obj[key] === source[key];

它只会根据 obj.hasOwnProperty(key) && obj[key] === source[key]; 条件返回 true/false。它检查来自 source 的每个键。如果它发现只有 一个键 与条件不匹配,它将中断循环并返回 false 否则(通过所有测试 [所有键和值来自 source 与集合的元素相同]) 返回真。

然后

arr = collection.filter(function(obj) {
返回真//假

如果它返回true,集合中的元素obj将被传递给arr,否则过滤/跳过

关于javascript - 了解函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40813099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com