gpt4 book ai didi

javascript - 对两个数组的值进行分组(平均)

转载 作者:行者123 更新时间:2023-11-28 02:29:56 27 4
gpt4 key购买 nike

我有 2 个包含以下数据的数组:

Array1 = [A, A, A, A, B, B, B, C, C, C, C, C];    
Array2 = [4, 2, 4, 6, 3, 9, 6, 5, 4, 6, 2, 8];

我想根据这些值创建 2 个新数组:

Array3 = [A, B, C];    
Array4 = [4, 6, 5];

数组 4 中的值是数组 2 的平均值。

创建 Array3 和 Array4 的 javascript 或 jquery 代码应该是什么样的?

编辑:

我想将这些值分组如下:

Array1      Array2
A 2
A 4
------------------
B 2
B 6
------------------
C 3
C 6
C 9

result:

Array3 Array4
A 3 Average from 2 and 4
B 4 Avarage from 2 and 6
C 6 Average from 3, 6 and 9

最佳答案

迭代Array1的每个值。这假设 Array2 具有相同的长度:

var Array1 = ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C'];    
var Array2 = [4, 2, 4, 6, 3, 9, 6, 5, 4, 6, 2, 8];

var helper = {};

Array1.forEach(function (elem, index) {
if (typeof helper[elem] === 'undefined') {
helper[elem] = {'count': 0, 'total': 0}
}
helper[elem].count++;
helper[elem].total += Array2[index];
});

var Array3 = [];
var Array4 = [];

for (item in helper) {
if (helper.hasOwnProperty(item)) {
Array3.push(item);

Array4.push(parseInt(helper[item].total / helper[item].count));
}
}
console.log(Array3, Array4);

我所做的是创建一个辅助对象,它将 Array1 值存储为键,将计数/总计存储为值(可以从中计算平均值)。

http://jsfiddle.net/V38Lt/

关于javascript - 对两个数组的值进行分组(平均),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14379026/

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