aar*_*ell 6 javascript arrays sorting
给定一个像这样的对象数组:
objects = [
{ id: 'aaaa', description: 'foo' },
{ id: 'bbbb', description: 'bar' },
{ id: 'cccc', description: 'baz' }
];
Run Code Online (Sandbox Code Playgroud)
像这样的字符串数组:
order = [ 'bbbb', 'aaaa', 'cccc' ];
Run Code Online (Sandbox Code Playgroud)
我如何对第一个数组进行排序,以便id属性与第二个数组的顺序相匹配?
Cer*_*rus 16
试试这个:
objects.sort(function(a, b){
return order.indexOf(a.id) - order.indexOf(b.id)
});
Run Code Online (Sandbox Code Playgroud)
假设变量就像你在问题中声明它们一样,这应该返回:
[
{ id: 'bbbb', description: 'bar' },
{ id: 'aaaa', description: 'foo' },
{ id: 'cccc', description: 'baz' }
];
Run Code Online (Sandbox Code Playgroud)
(它实际上修改了objects变量)