简体   繁体   English

在javaScript中根据给定顺序排序

[英]Sort on basis of given order in javaScript

I have array of object like : 我有像这样的对象数组:

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 }
];

I want sorted order where green -> yellow -> red 我想要排序的顺序,其中绿色->黄色->红色

after array.sort(custmeSort()) output should be 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 }
]

How to achive this in javascript. 如何在javascript中实现。

You can use one object to set sorting order, and then just use sort() 您可以使用一个对象设置排序顺序,然后仅使用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) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM