javascript - 将嵌套数组中的 2 个值相乘然后推送到一个新数组 - JavaScript Vue
问题描述
我有一个数组,我试图将两个值相乘,qty
并packageQuantity
创建一个新数组,并将结果集设置为units
键。
问题是我有一个复杂的嵌套数组,无法锻炼如何创建一个新数组!
我已经弄清楚如何进行乘法运算,但是我不知道如何将值推送到新数组。
我正在使用 Vue,如果可能的话,我想实时更改这些值。
如何进行乘法运算,创建一个新数组,将结果放入单位键中?
为了澄清,我想创建一个新数组,将新结果放入其中,同时添加旧值。见下文。
提前非常感谢!
这是我当前的数组:
data: () => ({
sites: [
{
sku: "10001",
values: [
{
variationName: { name: "Unpackaged", qty: 1 },
units: '',
packageQuantity: '2'
}
]
},
{
sku: "10002",
values: [
{
variationName: { name: "2 Pack", qty: 2 },
units: '',
packageQuantity: '3'
},
{
variationName: { name: "4 Pack", qty: 4 },
units: '',
packageQuantity: '1'
}
]
}
]
})
这是我想要的输出:
sites: [
{
sku: "10001",
values: [
{
variationName: { name: "Unpackaged", qty: 1 },
units: '2', // 1 * 2
packageQuantity: '2'
}
]
},
{
sku: "10002",
values: [
{
variationName: { name: "2 Pack", qty: 2 },
units: '6', // 2 * 3
packageQuantity: '3'
},
{
variationName: { name: "4 Pack", qty: 4 },
units: '4', // 1 * 4
packageQuantity: '1'
}
]
}
]
这是我的计算:
sites.forEach(
(innerArray) => innerArray.values.forEach(
(item => console.log(item.variationName.qty * item.units))
)
)
解决方案
let newData=[];
let sites = [
{
sku: "10001",
values: [{
variationName: {
name: "Unpackaged",
qty: 1
},
units: '',
packageQuantity: '2'
}]
},
{
sku: "10002",
values: [{
variationName: {
name: "2 Pack",
qty: 2
},
units: '',
packageQuantity: '3'
},
{
variationName: {
name: "4 Pack",
qty: 4
},
units: '',
packageQuantity: '1'
}
]
}
]
for (let i = 0; i < sites.length; i++) {
let iData = sites[i].values;
for (let j = 0; j < iData.length; j++) {
iData[j].units = parseInt(iData[j].packageQuantity) * parseInt(iData[j].variationName.qty);
}
}
newData.push(sites);
输出
newData: [
{
sku: "10001",
values: [{
variationName: {
name: "Unpackaged",
qty: 1
},
units: 2,
packageQuantity: '2'
}]
},
{
sku: "10002",
values: [{
variationName: {
name: "2 Pack",
qty: 2
},
units: 6,
packageQuantity: '3'
},
{
variationName: {
name: "4 Pack",
qty: 4
},
units: 4,
packageQuantity: '1'
}
]
}
]
推荐阅读
- javascript - 如何在 mvc 的部分视图中使用模式弹出窗口
- algorithm - 图中的边属性
- javascript - Mongoose findOne 基于另一个文档导致未处理的 Promise Rejection 错误
- python - Django 锁定注销
- android - 如何在 MVVM 项目中正确使用 Dagger 范围?
- python - SQlite3 和 python 中的日期时间对象
- python - 我想遍历 for 循环以返回三个点
- angular - Angular 7项目升级http授权错误
- php - 循环域并检查它们是否已关闭
- c# - 将 Double `""` 放入字符串