本文介绍了对象的数组排序在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的任意列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 09:58