Javascript 给定数组,编写一个函数来查找最大值并返回匹配字符串
我得到了一个数组,需要编写一个函数mostExpensiveItemName(items),让它返回数组中最大的数字,并返回items名称 示例输出:Javascript 给定数组,编写一个函数来查找最大值并返回匹配字符串,javascript,arrays,Javascript,Arrays,我得到了一个数组,需要编写一个函数mostExpensiveItemName(items),让它返回数组中最大的数字,并返回items名称 示例输出: mostExpensiveItemName(items) //=> "Creation 3005" 给定数组: let items = [ { itemName: "Effective Programming Habits", type: "book",
mostExpensiveItemName(items) //=> "Creation 3005"
给定数组:
let items = [
{
itemName: "Effective Programming Habits",
type: "book",
price: 13.99
},
{
itemName: "Creation 3005",
type: "computer",
price: 299.99
},
{
itemName: "Finding Your Center",
type: "book",
price: 15.00
}
]
我所拥有的:
function mostExpensiveItemName(items) {
if (items.length === 0) return undefined;
let mostExpensive = items.reduce((total, items) => items.price > total.price ? items : total);
return mostExpensive.itemName;
}
我的解决方案是可行的,但我想知道是否有一种超基本的写作方法。使用for循环或max()方法可以尝试升序排序并选择最后一个元素
let项目=[
{
itemName:“有效的编程习惯”,
键入:“书”,
价格:13.99,
},
{
项目名称:“创建3005”,
键入:“计算机”,
价格:299.99,
},
{
itemName:“找到你的中心”,
键入:“书”,
价格:15.0,
},
]
函数mostExpensiveItemName(项){
return(items.sort((a,b)=>a.price-b.price.pop()|{}).itemName
}
console.log(mostExpensiveItemName(项目))
console.log(mostExpensiveItemName([])
您所拥有的似乎已经足够好了。我还想说,您的解决方案是可行的。它很短,很容易阅读(即使我将(总计,项)
重命名为(curMax,项)
),并且以O(n)运行。我会考虑将它抽象为一个级别,创建一个<代码> CudiMax(项目,项目= >项目。价格)< /C>方法,特别是如果您在多个场合使用它。