javascript - 如何按照预定的层次结构对 JavaScript 数组进行排序

标签 javascript arrays sorting

假设我有这样的层次结构:

0 King
1 Queen
2 Tower
3 Bishop
4 Knight
5 Pawn

以及一个包含以下元素的数组:

array = [Tower, Pawn, Bishop, Queen]

如何按照层次结构对其进行排序?

array = [Queen, Tower, Bishop, Pawn]

最佳答案

创建一个定义层次结构的对象:

const hierarchyMap = {
  King: 0,
  Queen: 1,
  Tower: 2,
  Bishop: 3,
  Knight: 4,
  Pawn: 5,
}

然后根据层次结构值对数组进行排序:

array.sort((first, second) => hierarchyMap[first] - hierarchyMap[second]);

反之亦然:

array.sort((first, second) => hierarchyMap[second] - hierarchyMap[first]);

const hierarchyMap = {
  King: 0,
  Queen: 1,
  Tower: 2,
  Bishop: 3,
  Knight: 4,
  Pawn: 5,
}


let array = ["Tower", "Pawn", "Bishop", "Queen"];

let sorted = array.sort((first, second) => hierarchyMap[first] - hierarchyMap[second]);

console.log(sorted)

关于javascript - 如何按照预定的层次结构对 JavaScript 数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63109711/

相关文章:

PHP/HTML/Javascript : How to add value to a div element?

javascript - jQuery拆分问题

Java排序一总是在最前面

c# - 更改 Int Array C# 中给定索引处的值

perl - Perl中的双索引,为什么会这样?

Python 无法识别多级索引

python - 插入排序算法差一错

javascript - 使用 react 按钮更改传单 basemap

javascript - 从异步请求循环中获取值

java - 有人可以解释这个方法是如何工作的吗?