为什么未排序的数组在 JavaScript 中的结果哈希表中被排序?



我有一个未排序的数组:

const x = [10, 5, 1, 8, 3, 6, 5, 4, 7, 2, 5, 9, 0];

我想将此数组转换为哈希表,其中键是数组的元素,值是该数组中元素出现的次数。所以我接下来做:

const map = {};
x.forEach(item => {
if (!map.hasOwnProperty(item)) {
map[item] = 0;
}
map[item] += 1;
})

我不明白的是为什么我的未排序数组在结果哈希表中被排序?

{
'0': 1,
'1': 1,
'2': 1,
'3': 1,
'4': 1,
'5': 3,
'6': 1,
'7': 1,
'8': 1,
'9': 1,
'10': 1
}

代码中使用的数据结构是 Object,当使用 Objects.keys 或使用迭代时,它将始终按升序重新运行。如果您想保持广告顺序。尝试地图或设置,有关详细信息,请参阅下文。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set

最新更新