我有一个存储在数组中的查询结果,并且一些记录在其中一列上具有相同的值,这应该是它应该是的。现在对于那些在第一列中具有相同数据的记录,我想总结第二列中的值并返回一行,第二列是2行的总和。这是一个例子。
RADSR 41
SOFTAC 10
SOFTAC 102
SOFTBC 44
SOFTCS 2
SOFTDW 8
if (sending != undefined){
gist.push([value1, value2]);
}
gist.sort();
for (var index = 0; index < gist.length; index++) {
xmlMs += "<td>" + gist[index][0] + "</td>";
xmlMs += "<td>" + gist[index][1] + "</td>";
}
所以我的问题是我想只返回一行(SOFTAC)而不是第2行和第2行。 3因为它们是相同的并在那一行中总结它们的值。
答案 0 :(得分:1)
如果不诉诸第三方库,这是非常重要的:
首先,您可以创建一个&#34;地图&#34;独特的密钥及其累积值:
var gistMap = gist.reduce(function(result, current) {
var key = current[0], value = current[1];
result[c] = (result[c] || 0) + value;
return result;
}, {} );
此时,您可以迭代地图(以任何顺序迭代),或者以原始格式创建新的排序数组:
var keys = Object.keys(gistMap).sort();
var newGist = keys.map(function(key) {
return [key, gistMap[key]];
});