我被卡住了,我有两个物体
对象1
29: {value: 29, price: "145"}
30: {value: 30, price: "160"}
对象2
29: {value: 29, count: 2}
30: {value: 30, count: 3}
我正在尝试将价格乘以同一索引中的计数,我尝试使用Object.assing将对象1的值复制到对象2,然后将同一对象中的值相乘,但是我没有有运气
我正在尝试仅保留一个包含两个元素之和的元素
最佳答案
我敢肯定,有一种更好的(更具说明性的)方法可以做到这一点,但是我想不到的是这。
(PS。名称object1
和object2
有点误导,它们都是对象数组)
function getTotals(object1, object2) {
let finalObject = []
for (let i = 0; i < object1.length; i++) {
for (let j = 0; j < object2.length; j++) {
if (object1[i].value == object2[j].value) {
const value = object1[i].value;
const total = object1[i].price * object2[j].count;
finalObject.push({ value, total });
}
}
}
return finalObject;
}
输入的结果将是...
let object1 = [
{value: 29, price: 145},
{value: 30, price: 160}
]
let object2 = [
{value: 29, count: 2},
{value: 30, count: 3}
]
console.log(getTotals(object1, object2));
// Will return
// [{ value: 29, total: 290 }, { value: 30, total: 480 }]