【问题标题】:How can I sort an array with multiple arrays within? (JavaScript)如何对包含多个数组的数组进行排序? (JavaScript)
【发布时间】:2020-11-02 03:14:48
【问题描述】:

所以我正在为 RPG Maker MV 开发基于网格的战术战斗系统(使用 Javascript),并且一直在开发回合顺序。我对某些数组的名称知之甚少,所以我提前道歉。

我在做什么(没有其他类的简化):

var turnOrder = [];
var roll = (actor.agi - 10) + Math.randomInt(100);
var data = {
   id: actor._actorId,
   type: "player",
   init: roll
};
turnOrder.push(data);

然后循环遍历所有党员,然后在最后添加敌人(通过 eventId)。

我需要帮助:我将如何对以下示例进行排序? (2 名玩家 + 1 名敌人)

[{"id":1,"type":"player","init":27},
 {"id":2,"type":"player","init":4},
 {"id":1,"type":"enemy","init":17}]

如何仅按“init”对上述内容进行排序? (按降序排列) 我提前感谢任何人和每个人(我似乎无法通过其他搜索找到它)。

【问题讨论】:

标签: javascript arrays sorting multidimensional-array


【解决方案1】:

您可以使用sort 根据init 降序排序

pool=[{"id":1,"type":"player","init":27},
 {"id":2,"type":"player","init":4},
 {"id":1,"type":"enemy","init":17}]


  pool.sort((a,b)=>b.init-a.init)
  console.log(pool)

【讨论】:

  • 哦...一直以来我都认为“=>”不起作用...但是这样做了!哇哦!!!谢谢
【解决方案2】:

也许是这样

let arr = [{"id":1,"type":"player","init":27},
 {"id":2,"type":"player","init":4},
 {"id":1,"type":"enemy","init":17}];

function compare(a, b) {
  return a.init < b.init ? -1 : 1;
}

let sorted = arr.sort(compare);
console.log(sorted);

【讨论】:

    猜你喜欢
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 2011-03-07
    相关资源
    最近更新 更多