Node.js根据值顺序重定位哈希元素

时间:2013-12-15 15:26:43

标签: node.js sorting

我想知道是否可以根据值的顺序更改哈希元素的顺序。

例如,

a = { a:3, b:1, c:2}
a = sort_on_values(a)
a = { b:1, c:2, a:3}

1 个答案:

答案 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 }
]