【发布时间】:2019-11-25 18:13:54
【问题描述】:
我遇到了一个问题,我编写的代码似乎做了两件非常奇怪的事情。当逐行运行时,对象是在正确战争中的对象中构造的,但是一旦它退出 for 循环,创建的对象似乎默认回到按升序排列的键?
我发送到函数中的对象如下:
{
0: 'Hello',
20: 'World',
40: 'Test'
}
const reverseObject = (object) => {
const newObject = {};
Object.keys(object).reverse().forEach((key) => {
newObject[key] = object[key];
});
return newObject;
};
我期望在这里发生的是一个看起来像这样的对象:
{
40: 'Test'
20: 'World',
0: 'Hello',
}
newObject 在循环中看起来像这样
{
40: 'Test'
20: 'World',
0: 'Hello',
}
但在返回线上看起来像
{
0: 'Hello',
20: 'World',
40: 'Test'
}
我不确定 javascript 中的某些内容是否限制了这种用例,但我尝试使用的 API 与它的设置采用具有如下键的对象的方式略有不同。
如果您能想出一种按预期排序的方法,我们将不胜感激。期待回复。
【问题讨论】:
-
不保证对象中键的顺序
-
@DacreDenny 是对的。您可以做的一件事是在反转它们之前对键进行排序
Object.keys(object).sort().reverse()。
标签: javascript arrays reactjs sorting object