Javascript 基于json响应的计算

Javascript 基于json响应的计算,javascript,arrays,json,Javascript,Arrays,Json,假设我的JSON响应类似于 [ {productName:"nord128",quantiy: 4}, {productName:"nord128", quantiy:5}, {productName:"nord128", quantiy:8}, {productName:"Iphone11",quantiy:3}, {productName:"nord128",quantiy

假设我的JSON响应类似于

[
  {productName:"nord128",quantiy: 4},
  {productName:"nord128", quantiy:5},
  {productName:"nord128", quantiy:8},
  {productName:"Iphone11",quantiy:3},
  {productName:"nord128",quantiy:6}
]
如何创建一个数组,其中包含productName及其在数组中的总值

[[nord128,23],[Iphone11,3]]
[["nord128",4],["nord128",5],["nord128",8],["Iphone11",3]["nord128",6]]
我试过了

res.forEach((element) => {
  array.push([element.productName, element.quantity])
})
 
以数组形式获取结果

[[nord128,23],[Iphone11,3]]
[["nord128",4],["nord128",5],["nord128",8],["Iphone11",3]["nord128",6]]
但是当我将数组的下一个元素与当前元素进行比较时,会得到一个错误

for (let i = 0; i < array.length - 1; i++) {
  if (array[i][0] === array[i + 1][0]) {
    /// some condition
  }
}
for(设i=0;i
将错误获取为数组[i+1][0]//此处0未定义

您可以使用它创建一个累加器对象,该对象根据
productName

var x=[{
产品名称:“nord128”,
数量:4
},
{
产品名称:“nord128”,
数量:5
},
{
产品名称:“nord128”,
数量:8
},
{
产品名称:“Iphone11”,
数量:3
},
{
产品名称:“nord128”,
数量:6
}
];
常数obj=x.reduce(功能(acc,val){
acc[val.productName]=val.quantiy+(acc[val.productName]| | 0)
返回acc
}, {})
console.log({
obj

})
您的JSON响应无效。JSON要求属性键双引号,所有属性之间用逗号分隔。