如何对包含数组的javascript对象进行排序
How to sort javascript object which contains arrays?
我有一个名为classes的对象,它看起来像这样:
Object {d1: Array[6], a1: Array[6]};
我添加一个新数组:classes.b1 = [{"id":1,"vprasan":true},{"id":2,"vprasan":true}]
我如何对这个对象进行排序,所以它看起来像这样:Object {a1: Array[6], b1: Array[6], d1: Array[6]};
你不能。JavaScript 对象中的属性顺序是未定义的。
来自 ECMAScript 第三版的对象定义 (pdf(:
4.3.3 对象
对象是 类型对象。它是属性的无序集合,每个属性 包含基元值、对象或 功能。存储在 对象的属性称为 方法。
如另一个答案中所述,您无法对对象进行排序,因此它以特定的方式"看起来",因为对象本质上是无序的。 但是,我对你的问题解释得更自由一些;在我看来,您想按对象键、"A1"、"B1"、"D1"等进行排序。 这样做很容易,然后您可以根据排序键处理对象:
var classes = {d1: ['item1'], a1: ['item1','item2']};
classes.b1 = ['item1', 'item2', 'item3'];
var keys = Object.keys(classes);
keys.sort();
for (var i=0, n=keys.length; i<n; i++) {
console.log(keys[i]);
console.log(classes[keys[i]].length);
}
输出:
a1
2
b1
3
d1
1
是的,伙计,如果顺序很重要,你必须把它放在一个数组中:
var classes = [
{name: 'a1', value: Array[6]},
{name: 'b1', value: Array[6]},
{name: 'd1', value: Array[6]}
];
然后研究这个问题进行排序。
Javascript - 根据数组的一个属性按字母顺序对数组中的对象进行排序
相关文章:
- 如何在节点中进行 Json 对象排序.js
- jQuery.每个对象排序
- Javascript对象排序
- Javascript 对象排序
- Javascript中的JSON对象排序
- jQuery停止对象排序
- 带有下划线排序的对象排序的数组
- JS对象排序日期排序
- JSON对象排序被jQuery或Javascript篡改
- 高级对象排序
- 将json对象排序到嵌套树中
- 按两个不同的条件对数组中的对象排序
- 如何在angular js中使用自定义排序顺序对对象排序
- 在AngularJS的ng-repeat中,使用Underscore/Lodash按值将对象排序为一对数组
- 给定一个对象数组,如何根据深度为n的属性对对象排序
- JavaScript数组对象排序没有按预期工作
- 对数组内的对象排序
- 自定义javascript对象排序和维护索引关联
- Javascript对象排序不工作
- Javascript对象的对象排序