根据javaScript中的给定顺序排序

Aru*_*agi 0 javascript sorting

我有像这样的对象数组:

var array = [
    { id: 1, color: red,    value: 1 },
    { id: 2, color: red,    value: 2 },
    { id: 3, color: yellow, value: 3 },
    { id: 4, color: yellow, value: 4 },
    { id: 5, color: green,  value: 4 }
];
Run Code Online (Sandbox Code Playgroud)

我想要排序顺序绿色 - >黄色 - >红色

array.sort(custmeSort()) 输出后应该是

[
    { id: 5, color: green,  value: 4 },   
    { id: 3, color: yellow, value: 3 },
    { id: 4, color: yellow, value: 4 },
    { id: 1, color: red,    value: 1 },
    { id: 2, color: red,    value: 2 }
]
Run Code Online (Sandbox Code Playgroud)

如何在javascript中实现这一点.

Nen*_*car 5

您可以使用一个对象来设置排序顺序,然后使用 sort()

var array = [
  {id: 1, color: 'red',value: 1},
  {id: 2, color: 'red',value: 2},
  {id: 3, color: 'yellow',value: 3},
  {id: 4, color: 'yellow',value: 4},
  {id: 5, color: 'green',value: 4},
]
var order = {
  green: 1,
  yellow: 2, 
  red: 3
}

var result = array.sort(function(a, b) {
  return order[a.color] - order[b.color];
})

console.log(result)
Run Code Online (Sandbox Code Playgroud)