基于Array indise排序对象

时间:2018-02-11 09:23:43

标签: javascript jquery arrays underscore.js

我想知道如何基于每个对象内的数组来缩短对象,这里是我的数组对象:

var cars = {
  'Ferrari': {
    'Ascari': {color: 'Yellow', year: 2005},
    'Enzo': {color: 'Red', year: 2003}
  }
};

我想根据汽车年份对它们进行排序,所以我想要这样的输出:

var cars = {
  'Ferrari': {
    'Enzo': {color: 'Red', year: 2003}
    'Ascari': {color: 'Yellow', year: 2005},
  }
};

请让我知道如何做到这一点,非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:1)

您无法对对象的属性进行排序,因为属性没有订单。而且也没有用。迭代属性不会按照您设置的顺序给出它们。

最好将cars作为数组并使用sort对其进行排序。



var cars = {
    'Ferrari': [
        { name: 'Ascari', color: 'Yellow', year: 2005 },
        { name: 'Enzo', color: 'Red', year: 2003 }
    ]
};

cars['Ferrari'].sort((a,b) => a.year - b.year);
console.log(cars);