Javascript 基于json响应的计算
假设我的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
[
{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要求属性键双引号,所有属性之间用逗号分隔。