为什么 JavaScript 会自动对对象中的数字键进行排序?我怎样才能绕过它?它打乱了对我来说很重要的索引顺序

问题描述 投票:0回答:1

让 arr = [10,23,45,64,69,12,446,565,75,456];

让 obj = {};

for (let i = 0; i < arr.length; i++) {
    obj[arr[i]] = arr[i]
}

let values = Object.values(obj)

console.log(值)

我的期望值数组为:- [10, 23, 45, 64, 69, 12, 446, 565, 75, 456]

但是我正在获取排序值:- [ 10、12、23、45、64、 69、75、446、456、565 ]

javascript arrays sorting object
1个回答
0
投票

在 JavaScript 中,不保证 object 属性的顺序与它们添加的顺序相同。因此,当使用循环创建对象时,不能保证顺序与原始数组中元素的顺序相同。

如果您想在结果数组中保持数组中元素的顺序,可以将

Set
spread syntax (...)

一起使用

let arr = [10,23,45,64,69,12,446,565,75,456];

let values = [...new Set(arr)];

console.log(values);

© www.soinside.com 2019 - 2024. All rights reserved.