Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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 给定数组,编写一个函数来查找最大值并返回匹配字符串_Javascript_Arrays - Fatal编程技术网

Javascript 给定数组,编写一个函数来查找最大值并返回匹配字符串

Javascript 给定数组,编写一个函数来查找最大值并返回匹配字符串,javascript,arrays,Javascript,Arrays,我得到了一个数组,需要编写一个函数mostExpensiveItemName(items),让它返回数组中最大的数字,并返回items名称 示例输出: mostExpensiveItemName(items) //=> "Creation 3005" 给定数组: let items = [ { itemName: "Effective Programming Habits", type: "book",

我得到了一个数组,需要编写一个函数mostExpensiveItemName(items),让它返回数组中最大的数字,并返回items名称

示例输出:

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>方法,特别是如果您在多个场合使用它。