【发布时间】:2018-10-27 07:00:52
【问题描述】:
这对我来说是一个简单但最痛苦的问题。
以下面的sn-p代码为例:
const test = {};
test[2] = 'value2';
test[1] = 'value1';
console.log(test);
上面sn-p的结果是:
{
1: "value1",
2: "value2"
}
我想传递这个对象,结果如下:
{
2: "value2",
1: "value1"
}
PS: 我试过 Object.keys(test).sort() 和 Object.keys(test).reverse() 和然后将它与重新创建对象的函数链接起来,但似乎没有什么对我有用。
【问题讨论】:
-
很确定这是不可能的,因为数字属性总是按数字顺序列出,不是吗?但我认为,属性顺序不是任何好的代码都应该依赖的东西
-
如果你想传递对象本身,不要认为这是可能的,尽管如果你想传递对象的序列化版本是可能的。 (虽然,在反序列化时,如果接受它是基于 JS 的,它会变成纯数字顺序)听起来你应该改用数组,也许
-
Object.keys(test).sort().reverse()
-
它只会反转键,但我希望键和值都符合预期的格式。
-
不要发送您选择的对象,而是按原样发送对象,并在处理它的方法中按照您的需要进行处理。在关联数组的情况下,顺序始终是随机的。或者,将关联数组转换为对象数组,并将它们转换为您的函数需要的方式。
标签: javascript sorting object