gpt4 book ai didi

javascript计算数组中的重复项

转载 作者:行者123 更新时间:2023-11-29 10:05:12 24 4
gpt4 key购买 nike

请考虑这个JS函数

我看过这个similar问题,但听不懂。

function a (ResultArray){
var counts={};
for ( p = 0; p < ResultArray.length; p++){
counts[ResultArray[p]] = (counts[ResultArray[p]] + 1) || 1;
}
return counts;
}

var arr = ["a","b","c","d","a","b","e"];
var res = new a(arr);
console.log(res)

它工作正常并提供计数。我需要了解它是如何给出计数的,特别是 (counts[ResultArray[p]] + 1) || 1; 部分。 +1|| 在做什么。

最佳答案

我想主要的困惑来自这一行:

counts[ResultArray[p]] = (counts[ResultArray[p]] + 1) || 1;

|| 运算符返回左侧的内容,如果它是“真实的”(除“虚假”值 false 之外的任何内容,0''nullundefinedNaN),否则返回右侧。

如果 ResultArray[p] 不在 counts 内,则 counts[ResultArray[p]] 将为 undefined。因为 undefined + 1NaN|| 的左边是“falsy”,所以它会返回右边的 1

否则,counts[ResultArray[p]] 将是我们已经看到 ResultArray[p] 的次数,我们将添加 1 到它。在这种情况下,左侧将是“真实的”,它将返回新的计数。

关于javascript计算数组中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44953236/

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