我想知道是否可以根据值的顺序更改哈希元素的顺序。
例如,
a = { a:3, b:1, c:2}
a = sort_on_values(a)
a = { b:1, c:2, a:3}
答案 0 :(得分:1)
据我了解,对象上的属性是 set ,这意味着它们没有顺序,因此尝试对它们进行排序是不值得的。
特定的实现(node.js)可能总是以插入顺序返回它们,在这种情况下你很幸运,但我不会依赖它。
如果你想要一个有序列表,那么使用像数组一样的有序列表。
例如:
var array = [ { a: 3 }, { b: 1 }, { c: 2 } ];
array.sort(function (a, b) {
return a[Object.keys(a)[0]] - b[Object.keys(b)[0]];
});
console.log(array);
打印出类似
的内容[
{ b: 1 },
{ c: 2 },
{ a: 3 }
]