本文介绍了对象的数组排序在JavaScript的任意列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
由于对象的数组是这样的:
Given an array of objects like this:
objects = [
{ id: 'aaaa', description: 'foo' },
{ id: 'bbbb', description: 'bar' },
{ id: 'cccc', description: 'baz' }
];
和字符串像这样的数组:
And an array of strings like this:
order = [ 'bbbb', 'aaaa', 'cccc' ];
第一个数组,这样的id属性的第二个数组的顺序相匹配
我将如何排序?
How would I sort the first array so that the id attribute matches the order of the second array?
推荐答案
试试这个:
objects.sort(function(a, b){
return order.indexOf(a.id) - order.indexOf(b.id)
});
假设变量都像你在问题中宣称他们来说,这应该返回:
Assuming the variables are like you declared them in the question, this should return:
[
{ id: 'bbbb', description: 'bar' },
{ id: 'aaaa', description: 'foo' },
{ id: 'cccc', description: 'baz' }
];
(它实际上是修改对象
变量)
这篇关于对象的数组排序在JavaScript的任意列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!