gpt4 book ai didi

javascript - mdn 中的reduce 示例说明

转载 作者:行者123 更新时间:2023-12-01 02:03:53 26 4
gpt4 key购买 nike

有人可以详细解释一下这个片段吗

var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];

var countedNames = names.reduce(function (allNames, name) {
if (name in allNames) {
allNames[name]++;
} else {
allNames[name] = 1;
}
return allNames;
}, {});

请解释回调函数如何获取数组名称并得出答案

countedNames is:
// { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }

最佳答案

这定义了包含 5 个元素的数组

var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];

为了便于解释,我们单独定义该函数

该函数采用两个参数(allNames, name)。此函数返回的任何内容都会在每次迭代时添加到 allNames 中。

var myFunc = function (allNames, name) {

如果allNames已经包含name,则增加它的值

   if (name in allNames) {
allNames[name]++;
}

否则,添加name作为键并将其值设置为等于1

    else {
allNames[name] = 1;
}

从此函数返回allNames,以便reduce可以将其作为allNames传递给下一次迭代

   return allNames;
}

这会将 .reduce() 的结果分配给 countedNames,并且 {} 是初始值

var countedNames = names.reduce(myFunc, {}); 

关于javascript - mdn 中的reduce 示例说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50279918/

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