遍历数组并将每个元素设置为对象的属性会扰乱顺序

问题描述

我有一个包含一些ID的数组:

let ids = [ '184','085','241','086','087','165' ];

一个空对象-let data = {};

我正在遍历数组并将每个元素设置为对象的属性

ids.forEach(id => {
    data[id] = '';
});

我希望数据对象是:

{ '184': '','085': '','241': '','086': '','087': '','165': '' }

但是当我console.log(data)时,我发现属性的顺序混乱了,data是:

{ '165': '','184': '','087': '' }

我也尝试过使用这种方法遍历数组:

for (let id of ids) {
    data[id] = '';
}

但是结果却是混乱的。我需要知道如何如何正确设置属性,更重要的是,什么导致了此问题。

解决方法

您需要使用+来保持插入顺序。对象键按插入顺序排序,数字键除外,按升序排序。

Map