javascript - 过滤唯一的数组值和总和值

标签 javascript jquery arrays filtering

我有以下 js 数组:

for(var j = 0; j < array.length; j++){
  arr.push([array[j][0],array[j][1],array[j][2]]);
}

它翻译成这样:

数量、类型、数量

[[12345, "product", "10"],[12345, "product", "15"],[1234567, "other", "10"]]

我一直在尝试做的是过滤唯一的产品编号array[j][0]并对数量求和array[j][2]如果有多个,并且我能够通过执行以下操作来执行唯一的过滤器:

for(var o = 0; o < arr.length; o++){
  if (!n[arr[o][1]]){
     n[arr[o][1]] = true
     r.push(arr[o]);
  }
}

我希望你能帮助解决这个问题。我期望实现的是这样的:

[[12345, "product", "25"],[1234567, "other", "10"]]

由于产品 12345 重复,我只需要显示一次,并将具有相同产品编号的其他产品的数量相加。

最佳答案

var productIndex = {};
var result = [];
for (var i = 0; i < arr.length; i++) {
  var productId = arr[i][0];
  if (productIndex[productId] === undefined) {
    productIndex[productId] = result.length;
    result.push(arr[i]);
  } else {
    var index = productIndex[productId];
    result[index][2] = String(+result[index][2] + +arr[i][2]);
  }
}

关于javascript - 过滤唯一的数组值和总和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35928613/

相关文章:

java - 如何从数据库动态填充 JSP 页面中的下拉列表?

c - C 中的简单输入(Shell 中的输入重定向)

sql - 更新 PostgreSQL 数组中的值

javascript - 如何在 React Native 中创建循环列表

javascript - 如何根据数据路径查找元素并更改其中的类

jquery - 为什么我隐藏的 <tr> 没有真正隐藏?

javascript - 获取asp标签值并放入javascript函数

javascript - 可迭代关联数组对象

javascript - 通过调用函数从元素数组中删除重复值

javascript - SocketIO 如何为任何给定事件提供通用的 .on() 事件?