gpt4 book ai didi

javascript - 将数组转换为新数组(计算出现次数)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:51:58 28 4
gpt4 key购买 nike

我有一个包含 n 个项目的数组

var arr1 = [2, 0, 0, 1, 1, 2, 0, 0, 0, 2, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 2, 2, 1, 2, 2, 0, 1, 2, 2, 1, 1, 0, 1, 1, 0, 2, 1, 0, 0, 0, 2, 1, 1, 1, 2, 2, 1, 0, 0, 0, 2, 2, 2, 2, 2, 1, 0, 2, 2, 0, 2, 2, 0, 2, 0, 0, 1, 2, 1, 0, 2, 1, 0, 1, 2, 0, 2, 0, 0, 0, 1, 2, 1, 0, 2, 0, 0, 0, 1, 2, 1, 1, 1, 1]

如你所见,数组只有 i 个不同的值 (v) (0,1,2),i = 3案例

我想要的是以这样的数组结尾。

var arr2 = [23, 45, 64]

arr2 数组的长度应该对应于i 值应该是每个值出现的次数(v)

我正在做各种循环和条件,但正在寻找一个直接的解决方案。到目前为止我的部分http://jsfiddle.net/fiddlebjoern/aSsjy/2/

可能涉及 jQuery 和/或下划线。

最佳答案

简单易行!输入的值成为输出的键;当你遇到值时,你在这些键上积累:

var arr1 = [0,0,0,1,2,3,4,3,2,3,4,3,4,3,5];
var arr2 = [];

for (var i = 0; i < arr1.length; i++) {
var n = arr1[i];
if (arr2[n] != undefined)
arr2[n]++;
else
arr2[n] = 1;
}

console.log(arr2); // Output: [3, 1, 2, 5, 3, 1]

Live demo .

关于javascript - 将数组转换为新数组(计算出现次数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9616929/

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