Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重写myFunction使其工作_Javascript_Reduce - Fatal编程技术网

Javascript 如何重写myFunction使其工作

Javascript 如何重写myFunction使其工作,javascript,reduce,Javascript,Reduce,我如何得到这个: console.log(items.reduce(myFunction)) 得出与以下相同的答案: console.log(items.reduce((max, {price}) => price > max ? price : max, 0)) let项目=[ { itemName:“有效的编程习惯”, 键入:“书”, 售价:13.99 }, { 项目名称:“创建3005”, 键入:“计算机”, 价格:299.99 }, { itemName:“找到你的中心

我如何得到这个:

console.log(items.reduce(myFunction))
得出与以下相同的答案:

console.log(items.reduce((max, {price}) => price > max ? price : max, 0))
let项目=[
{
itemName:“有效的编程习惯”,
键入:“书”,
售价:13.99
},
{
项目名称:“创建3005”,
键入:“计算机”,
价格:299.99
},
{
itemName:“找到你的中心”,
键入:“书”,
价格:15.00
}
]
log(items.reduce((max,{price})=>price>max?price:max,0))
函数myFunction(最大,{price}){
如果(价格>最大值){
退货价格
}
}

console.log(items.reduce(myFunction))
如果
price
不大于此值,则需要一个小的起始值,并在函数中返回
max

function myFunction(max,{price}){
如果(价格>最大值){
退货价格;
}
返回最大值;
}
let items=[{itemName:“有效的编程习惯”,键入:“book”,price:13.99},{itemName:“Creation 3005”,键入:“computer”,price:299.99},{itemName:“找到你的中心”,键入:“book”,price:15.00}]
log(items.reduce((max,{price})=>price>max?price:max,0))

log(items.reduce(myFunction,-Number.MAX_值))
如果没有第二个参数传递给
reduce
数组的第一个元素将用作累加器的初始值(在您的情况下,这是不好的,因为每个元素都是一个对象)

另外,当
price>max
为false时,您不会返回任何内容,因此累加器将设置为
undefined

let项目=[{
itemName:“有效的编程习惯”,
键入:“书”,
售价:13.99
},
{
项目名称:“创建3005”,
键入:“计算机”,
价格:299.99
},
{
itemName:“找到你的中心”,
键入:“书”,
价格:15.00
}
]
console.log(items.reduce)(最大{
价格
})=>价格>最大值?价格:最大值,0)
函数myFunction(最大{
价格
}) {
如果(价格>最大值){
退货价格
}
返回最大值
}

console.log(items.reduce(myFunction,0))
如果
价格在这种情况下不重要怎么办?因为这是arrow函数和vanilla函数实现之间的明显区别。在这个语句中,items.reduce(myFunction,0)与这个语句函数myFunction(max,{price})->0成为累加器max,然后返回语句成为累加器的新值?@DCR yes,在每次迭代中,作为reduce的第一个参数传递的回调中返回的任何内容都将分配给累加器。