方法reducejavascript
我刚刚学会了javascript。为什么返回值为NaN方法reducejavascript,javascript,Javascript,我刚刚学会了javascript。为什么返回值为NaN var-arr=[ {名称:“A”,数量:1,价格:20}, {名称:“B”,数量:2,价格:40}, {名称:“C”,数量:3,价格:60}, {名称:“D”,数量:4,价格:80} ]; var测试=arr.REDUCT(功能(项目1、项目2){ 退货(item1.数量*item1.价格)+(item2.数量*item2.价格); }); 控制台日志(测试)基于您可能需要的直觉,该解决方案是否为您产生正确的结果?它所做的是用0初始化输
var-arr=[
{名称:“A”,数量:1,价格:20},
{名称:“B”,数量:2,价格:40},
{名称:“C”,数量:3,价格:60},
{名称:“D”,数量:4,价格:80}
];
var测试=arr.REDUCT(功能(项目1、项目2){
退货(item1.数量*item1.价格)+(item2.数量*item2.价格);
});
控制台日志(测试)代码>基于您可能需要的直觉,该解决方案是否为您产生正确的结果?它所做的是用0初始化输出,然后为数组中的每个项目将(数量*价格)的值添加到输出
var arr = [
{ name: "A", quantity: 1, price: 20 },
{ name: "B", quantity: 2, price: 40 },
{ name: "C", quantity: 3, price: 60 },
{ name: "D", quantity: 4, price: 80 }
];
var test = arr.reduce(function(acc, item){
return acc + (item.quantity * item.price);
}, 0);
console.log(test); //600
从文件中:
reducer函数有四个参数:
- 蓄能器(acc)
- 当前值(cur)
- 当前索引(idx)
- 源阵列(src)
reducer函数的返回值被分配给累加器,累加器的值在整个数组的每次迭代中都会被记住,并最终成为最终的单个结果值
所以,我相信你想这样做:
var-arr=[
{名称:“A”,数量:1,价格:20},
{名称:“B”,数量:2,价格:40},
{名称:“C”,数量:3,价格:60},
{名称:“D”,数量:4,价格:80}
];
var测试=arr.reduce(功能(acc,curr)
{
退货科目+(当前数量*当前价格);
}, 0);
控制台日志(测试)代码>
.as控制台{背景色:黑色!重要;颜色:石灰;}
.作为控制台包装{最大高度:100%!重要;顶部:0;}
为什么返回值为NaN
首先,您需要了解代码是如何执行的
reduce()是一个函数,它返回一个新数组,并将数组从多个值减少为一个值
reduce是一个聚合器函数,它接受一个初始值,然后根据数组中的每个条目对其进行变异,而这不会反映在代码中。你到底想达到什么目的