gpt4 book ai didi

javascript - 如果一个参数相同,则将 2 个数组组合成二维数组

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

我遇到的问题是,我想像这样组合一个二维数组:

[
[ "Renault", 61, 16, … ],
[ "Ferrari", 58, 10, … ],
[ "Mercedes", 32, 12, … ],
[ "Mercedes", 24, 21, … ],
[ "Toro Rosso", 7, 8, … ]
]

所以在这个例子中,我在数组的索引 0 处有两次字符串“Mercedes”。我想要的输出如下:

[
[ "Renault", 61, 16, … ],
[ "Ferrari", 58, 10, … ],
[ "Mercedes", 56, 33, … ],
[ "Toro Rosso", 7, 8, … ]
]

因此,如果像“Mercedes”这样的字符串在该数组中出现两次,我希望删除第二个。但是第二个数组中的值必须被接管到第一个“Mercedes”数组中。

最佳答案

看来您实际上是想聚合数组中的相似值。因此,您可以在 foreach 中执行一个循环,并将自己保存在一个临时数组中,该数组中的字符串值已知,而不是在另一个您的合并类中。那时,当您滚动浏览数组时,您可以检查是否已经在第一个伪造中添加了一个相等的字符串,如果是,您可以获取它的索引并将它们正确地聚合到另一个数组中。

let arr = [
["Renault", 61, 16],
["Ferrari", 58, 10],
["Mercedes", 32, 12],
["Mercedes", 24, 21],
["Toro Rosso", 7, 8]
]
var tmp1 = [], tmp2 = [];
arr.forEach(function(currentValue, index, arr) {
// currentValue contain your element
// index contain the index of your element
// arr contain you entire "values" array
var ind = tmp1.indexOf(currentValue[0]);
if(ind === -1) {
tmp1.push(currentValue[0]);
tmp2.push(currentValue);
} else {
tmp2[ind][1] += currentValue[1];
tmp2[ind][2] += currentValue[2];
}
});
console.log(tmp2);

关于javascript - 如果一个参数相同,则将 2 个数组组合成二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56855471/

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