gpt4 book ai didi

javascript - 如何使 `Object.keys` 遵守对象中键为 'declared' 的顺序?

转载 作者:行者123 更新时间:2023-11-30 16:51:10 25 4
gpt4 key购买 nike

给定对象:

var opts = {
'all': 'All',
0: 'Some option',
1: 'Cookies',
};

Object.keys(opts) 返回:

["0", "1", "all"]

我期待这个:

["all", "0", "1"] // The order in which the keys are 'declared' in the obj

如何按照属性在对象中出现的顺序遍历属性?

谢谢。

最佳答案

ECMA-262, section 12.6.4关于 for-in 语句:

The mechanics and order of enumerating the properties (step 6.a in the first algorithm, step 7.a in the second) is not specified.

你可以改用数组:

var opts = [
{key: 'all', value: 'All'},
{key: 0, value: 'Some option'},
{key: 1, value: 'Cookies'}
];

或者,在 ES6 中,Map对象:

var opts = new Map([
['all', 'All'],
[0, 'Some option'],
[1, 'Cookies']
]);

opts.forEach(function(val, key) {
console.log(key, val);
});

在这种情况下,forEach 将始终按插入顺序迭代键值对。

关于javascript - 如何使 `Object.keys` 遵守对象中键为 'declared' 的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30498678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com