gpt4 book ai didi

javascript - 如何在 JavaScript 中区分二维数组中的值

转载 作者:行者123 更新时间:2023-11-29 21:13:18 25 4
gpt4 key购买 nike

我得到了一个由数据库填充的二维数组,如下所示:

var Index = [["value1_lang1", "value1_lang2", "value1_lang3", "3,6,11,"],["value1_lang1", "value1_lang2", "value1_lang3", "37,41,97,114,"],["value2_lang1", "value2_lang2", "value2_lang3", "9,14,33,"]];

数组将获得超过 600 个值。我尝试使用以下两个 for 循环来完成:

for(var i = 0; i < Index.length; i++) {
for(var j = i + 1; j < Index.length; ) {
var item1 = Index[i][0]; //Only have to compare the values from lang1
var item2 = Index[j][0];

if(item1 == item2) {
var page1 = Index[i][3];
var page2 = Index[j][3];

if(page1 != page2) {
var newpages = page1 + page2;
} else {
var newpages = page1;
}

Index[i][3] = newpages;
Index.splice(j, 1);
page1 = "";
page2 = "";
newpages = "";

} else {
j++;
}
}
}

结果应该是这样的:

var Index = [["value1_lang1", "value1_lang2", "value1_lang3", "3,6,11,37,41,97,114"], ["value2_lang1", "value2_lang2", "value2_lang3", "9,14,33,"]];

但真正的结果是这样的:

var Index = [[undefined, undefined, undefined, undefined],["value1_lang1", "value1_lang2", "value1_lang3", "3,6,11,37,41,97,114,"], ["value2_lang1", "value2_lang2", "value2_lang3", "9,14,33,"]];

最佳答案

您可以使用内部数组的前三个元素作为哈希表的键并推送到结果集(如果不存在)或在索引 3 处追加元素。

var data = [["value1_lang1", "value1_lang2", "value1_lang3", "3,6,11,"], ["value1_lang1", "value1_lang2", "value1_lang3", "37,41,97,114,"], ["value2_lang1", "value2_lang2", "value2_lang3", "9,14,33,"]],
result = [];

data.forEach(function (a) {
var key = a.slice(0, 3).join('|');
if (!this[key]) {
this[key] = a.slice();
result.push(this[key]);
return;
}
this[key][3] += a[3];
}, Object.create(null));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何在 JavaScript 中区分二维数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40675333/

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