gpt4 book ai didi

javascript - 有没有更短的方法可以使用高阶函数来解决这个问题?也许是过滤方法?

转载 作者:行者123 更新时间:2023-12-03 16:00:58 27 4
gpt4 key购买 nike

返回一个没有列表中最昂贵的东西的新数组。您的函数应保留此数组中项目的顺序。代码是正确的,输出也是正确的。我没有很多关于 HOF 的 exp,所以我想看看如何使用 filter 方法来完成。

    function removeMostExpensive(list) {
var expensive = list[0];
for (var i = 1; i < list.length; i++) {
if (list[i].price > expensive.price) {
expensive = list[i];
}
}
var newList = [];
for (var i = 0; i < list.length; i++) {
if (list[i] !== expensive) {
newList.push(list[i]);
}
}
return newList;
}
console.log(removeMostExpensive([
{
item: "rice",
price: 12.75,
weightInPounds: 20
},
{
item: "chicken",
price: 6.99,
weightInPounds: 1.25
},
{
item: "celery",
price: 3.99,
weightInPounds: 2
},
{
item: "carrots",
price: 2.85,
weightInPounds: 2
},
{
item: "green beans",
price: 2.55,
weightInPounds: 2
}
]));

最佳答案

您可以通过将数组映射到价格并调用 Math.max 来找到最昂贵的商品。在上面。然后通过当前被迭代的项目是否具有该价格来过滤数组:

function removeMostExpensive(list) {
const max = Math.max(...list.map(obj => obj.price));
return list.filter(obj => obj.price !== max);
}
这是假设您当前的代码有效 - 如果多个项目与相同的最高费用捆绑在一起,则应该删除所有项目。

关于javascript - 有没有更短的方法可以使用高阶函数来解决这个问题?也许是过滤方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66718504/

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