如何解决我如何重写 myFunction 使其工作
我如何得到这个:
console.log(items.reduce(myFunction))
产生与以下相同的答案:
console.log(items.reduce((max,{price}) => price > max ? price : max,0))
let items = [
{
itemName: "Effective Programming Habits",type: "book",price: 13.99
},{
itemName: "Creation 3005",type: "computer",price: 299.99
},{
itemName: "Finding Your Center",price: 15.00
}
]
console.log(items.reduce((max,0))
function myFunction(max,{price}){
if(price > max ){
return price
}
}
console.log(items.reduce(myFunction))
解决方法
如果 max
不大于,您需要一个小的起始值并在函数中返回 price
。
function myFunction(max,{ price }) {
if (price > max) {
return price;
}
return max;
}
let items = [{ itemName: "Effective Programming Habits",type: "book",price: 13.99 },{ itemName: "Creation 3005",type: "computer",price: 299.99 },{ itemName: "Finding Your Center",price: 15.00 }]
console.log(items.reduce((max,{ price }) => price > max ? price : max,0))
console.log(items.reduce(myFunction,-Number.MAX_VALUE));
如果没有第二个参数传递给 reduce
,则数组的第一个元素将用作累加器的初始值(这在您的情况下很糟糕,因为每个元素都是一个对象);
此外,当 price > max
为 false 时,您不会返回任何内容,因此 accumulator 将设置为 undefined
。
let items = [{
itemName: "Effective Programming Habits",price: 13.99
},{
itemName: "Creation 3005",price: 299.99
},{
itemName: "Finding Your Center",price: 15.00
}
]
console.log(items.reduce((max,{
price
}) => price > max ? price : max,0))
function myFunction(max,{
price
}) {
if (price > max) {
return price
}
return max
}
console.log(items.reduce(myFunction,0))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。