gpt4 book ai didi

Javascript 计算重复项和唯一项并添加到数组

转载 作者:行者123 更新时间:2023-11-28 11:50:54 25 4
gpt4 key购买 nike

我正在尝试计算日期数组中的重复项并将它们添加到新数组中。

但我只得到重复项以及它们在数组中存在的次数。

我想要的是:

[a, a, b, c, c] => [a: 2, b: 1, c: 2]

代码:

$scope.result = { };
for(var i = 0; i < $scope.loginArray.length; ++i) {
if(! $scope.result[$scope.loginArray[i]]){
$scope.result[$scope.loginArray[i]] = 0;
++ $scope.result[$scope.loginArray[i]];}
}

有什么建议吗?

最佳答案

为此您可能需要一个对象,而不是数组。所以你所做的已经很棒了,但是 if 条件搞砸了:

$scope.result = {};
for (var i = 0; i < $scope.loginArray.length; ++i) {
if (!$scope.result[$scope.loginArray[i]])
$scope.result[$scope.loginArray[i]] = 0;
++$scope.result[$scope.loginArray[i]];
}

片段

var a = ['a', 'a', 'b', 'c', 'c'];
var r = {};
for (var i = 0; i < a.length; ++i) {
if (!r[a[i]])
r[a[i]] = 0;
++r[a[i]];
}
console.log(r);

或者更好的方式,您可以像其他人一样使用 .reduce 。一个简单的 reduce 函数将是:

var a = ['a', 'a', 'b', 'c', 'c'];
var r = a.reduce(function(c, e) {
c[e] = (c[e] || 0) + 1;
return c;
}, {});

console.log(r);

关于Javascript 计算重复项和唯一项并添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37674995/

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