gpt4 book ai didi

javascript - 访问数组内对象的属性 Javascript AngularJS

转载 作者:行者123 更新时间:2023-11-28 14:27:20 25 4
gpt4 key购买 nike

我有一系列产品,每种产品都有一个价格。我想创建一个过滤器来计算所有产品的总价。问题是我无法使用 forEach() ,因为我处于回调函数中。我的问题是,是否有一个函数可以执行类似 myArray.(intheobject).price 的操作,或者有一种方法来管理回调并获得正确的结果?

this.productList = [
{
type: 'chocolate',
pack: '3',
price: 5,
checkState: false
},
{
type: 'chocolate',
pack: '5',
price: 7,
checkState: false
},
{
type: 'chocolate',
pack: '10',
price: 10,
checkState: false
},
{
type: 'honey',
pack: '3',
price: 5,
checkState: false
},
{
type: 'honey',
pack: '5',
price: 7,
checkState: false
},
{
type: 'honey',
pack: '10',
price: 10,
checkState: false
},
{
type: 'candy',
pack: '3',
price: 5,
checkState: false
},
{
type: 'candy',
pack: '5',
price: 7,
checkState: false
},
{
type: 'candy',
pack: '10',
price: 10,
checkState: false
}
]


.filter('calculateTotal', function(){
var totalCost = 0;
return function(input){
return totalCost + ???
}
})

PierreDuc之后的答案,我的过滤器是这样的:

.filter('calculateTotal', function(){
return function(input){
return input.reduce((total, item) => item.price + total, 0);
}
})

最佳答案

您可以使用reduce方法:

const totalPrice = [{
type: 'chocolate',
pack: '3',
price: 5,
checkState: false
},
{
type: 'chocolate',
pack: '5',
price: 7,
checkState: false
}].reduce((total, item) => item.price + total, 0);

顾名思义,过滤器用于根据所提供方法的返回值过滤当前数组。

使用reduce,您可以根据输入(本例中为0)转换数组。它被分配给所传递方法的 total 参数,其中 item 是数组中的每个项目。从该方法返回的值将是 total 参数的新值。

关于javascript - 访问数组内对象的属性 Javascript AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52716951/

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