gpt4 book ai didi

javascript - 我无法使用在同一对象内创建的方法来修改对象的属性。我正在尝试使用 foreach 然后 console.log 未定义

转载 作者:行者123 更新时间:2023-12-04 07:15:43 26 4
gpt4 key购买 nike

代码:

    let references = [
{ nombre: 'productA', priceUsd: 2200, qty: 15 },
{ nombre: "productB", priceUsd: 1500, qty: 20 },
{ nombre: "productC", priceUsd: 3000, qty: 7 }
];
const store = {
products: references,
increasePrice: function(percToAdd) {
return this.products.forEach(item =>item['priceUsd']=item.priceUsd*(1+percToAdd/100));}
}
const increased = store.increasePrice(30);
console.log(increased)
输出:
undefined
但我正在寻找这样的东西:
[
{ nombre: 'productA', priceUsd: 2860, qty: 15 },
{ nombre: "productB", priceUsd: 1950, qty: 20 },
{ nombre: "productC", pricesUsd: 3900, qty: 7 }
]
我尝试了方法外的代码,它可以工作,但是当我把它放在一个函数中时,它就不再工作了。

最佳答案

这是因为 forEach不返回值(修改数组)而是对数组的每个元素执行某些操作。
您可以使用 map对于这种情况。


let references = [
{ nombre: 'productA', priceUsd: 2200, qty: 15 },
{ nombre: "productB", priceUsd: 1500, qty: 20 },
{ nombre: "productC", priceUsd: 3000, qty: 7 }
];
const store = {
products: references,
increasePrice: function (percToAdd) {
return this.products.map(item => ({ ...item, ["priceUsd"]: item.priceUsd * (1 + percToAdd / 100) }));
}
}
const increased = store.increasePrice(30);
console.log(increased)
您还拼错了 priceUsdreferences 的最后一项.

关于javascript - 我无法使用在同一对象内创建的方法来修改对象的属性。我正在尝试使用 foreach 然后 console.log 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68778313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com