按自定义顺序对对象数组进行排序 [英] Sort an object array by custom order
本文介绍了按自定义顺序对对象数组进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个对象数组,它们有一个名为CODE"的属性.
<预><代码>[{编号:168,NAME: "名字",代码:广告"},{编号:167,NAME: "第二名",代码:CC"},{编号:169,NAME: "第三名",代码:CCM"},{编号:170,NAME: "第四名",代码:CR"},]如何按自定义顺序对数组进行排序,例如:
var item_order = ["CCM","CR","AD","CC"];
尝试了各种方法都没有成功.请帮忙.
解决方案
您可以将函数 sort
与函数 indexOf
一起使用.
var array = [ { ID: 168, NAME: "First name", CODE: "AD" }, { ID: 167, NAME:"第二名",CODE:"CC"},{ID:169,NAME:"第三名",CODE:"CCM"},{ID:170,NAME:"第四名",CODE:"CR"}],item_order = ["CCM","CR","AD","CC"];array.sort((a, b) => item_order.indexOf(a.CODE) - item_order.indexOf(b.CODE));console.log(array);
.as-console-wrapper { max-height: 100% !important;顶部:0;}
I have an array of objects which have a property called 'CODE'.
[
{
ID: 168,
NAME: "First name",
CODE: "AD"
},
{
ID: 167,
NAME: "Second name",
CODE: "CC"
},
{
ID: 169,
NAME: "Third name",
CODE: "CCM"
},
{
ID: 170,
NAME: "Fourth name",
CODE: "CR"
},
]
How do I order the array by a customized order like:
var item_order = ["CCM","CR","AD","CC"];
Been trying various methods with no success. Please help.
解决方案
You can use the function sort
along with the function indexOf
.
var array = [ { ID: 168, NAME: "First name", CODE: "AD" }, { ID: 167, NAME: "Second name", CODE: "CC" }, { ID: 169, NAME: "Third name", CODE: "CCM" }, { ID: 170, NAME: "Fourth name", CODE: "CR" }],
item_order = ["CCM","CR","AD","CC"];
array.sort((a, b) => item_order.indexOf(a.CODE) - item_order.indexOf(b.CODE));
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }
这篇关于按自定义顺序对对象数组进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文