gpt4 book ai didi

javascript - 如何查找给定数组中重复数字的计数并将输出作为对象返回

转载 作者:行者123 更新时间:2023-12-02 21:42:18 25 4
gpt4 key购买 nike

在最近的一次采访中,我被问到了这个问题。对于给定的数组,例如 Arr[2,2,4,3,4,2,3,2,4]编写一个 JavaScript 函数来返回一个对象,其中包含上面数组中每个数字的计数,例如

countArr={2:4,3:2,4:3}

经过大量谷歌搜索后,我最终得到了下面的代码,它返回了正确的数据。

var uniqueCount = [2, 2, 4, 3, 4, 2, 3, 2];
var count = {};
uniqueCount.forEach(function(i) {
count[i] = (count[i] || 0) + 1;
});
console.log(count);

正如我所说,这很好用! 输出:{2:4, 3:2, 4:2}好吧,如果没有正确理解后台发生的事情,代码对于开发人员来说毫无意义:)

有人可以帮助我了解这实际上是如何工作的吗?

最佳答案

使用每个唯一数组元素的计数创建对象的主要工作发生在以下 block 中:

uniqueCount.forEach(function(i) {
count[i] = (count[i] || 0) + 1;
});

这里我们像在“for 循环”中一样迭代数组中的每个元素。我希望您熟悉“for 循环”的工作原理。然后,我们将数组的每个元素传递到函数中。

count[i] = (count[i] || 0) +1;

可以写成:

if(count[i]) {
count[i] = count[i] + 1;
} else {
count[i] = 1;
}

希望能帮助您理解代码。

关于javascript - 如何查找给定数组中重复数字的计数并将输出作为对象返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60339758/

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