开发者社区> 问答> 正文

比较对象的JavaScript数组以获取最小/最大

我有一个对象数组,我想比较特定对象属性上的那些对象。这是我的数组:

var myArray = [ {"ID": 1, "Cost": 200}, {"ID": 2, "Cost": 1000}, {"ID": 3, "Cost": 50}, {"ID": 4, "Cost": 500} ] 我想将“成本”专门归零,并获得最小值和最大值。我意识到我可以获取成本值并将其推入javascript数组,然后运行Fast JavaScript Max / Min。

但是,有没有一种更简单的方法可以通过绕过中间的数组步骤并直接关闭对象属性(在这种情况下为“成本”)来做到这一点? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 14:21:26 459 0
1 条回答
写回答
取消 提交回答
  • 在这种情况下,最快的方法是遍历所有元素,并将其与到目前为止的最高/最低值进行比较。

    (创建数组,调用数组方法对于这种简单的操作来说是多余的)。

    // There's no real number bigger than plus Infinity var lowest = Number.POSITIVE_INFINITY; var highest = Number.NEGATIVE_INFINITY; var tmp; for (var i=myArray.length-1; i>=0; i--) { tmp = myArray[i].Cost; if (tmp < lowest) lowest = tmp; if (tmp > highest) highest = tmp; } console.log(highest, lowest);

    2020-02-08 14:21:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载