我有多个对象,称为stations。每个工作站都有一个名为money的属性。

stations[0].money = 2000
stations[1].money = 500
stations[2].money = 1200
stations[3].money = 2200

我想创建一个桩号索引数组(在此示例中为0、1,2和3),但按金额划分,每个桩号按货币升序排列。
所以我想拥有:
var moneyArray = [1, 2, 0, 3]

最优雅的方法是什么?

最佳答案

您可以从一个普通的索引数组开始(最好是循环生成),然后按照stations数组中各个索引处的对象的值对其进行排序:

[0, 1, 2, 3].sort(function(ai, bi) {
    return stations[ai].money - stations[bi].money;
})

07-26 00:38