gpt4 book ai didi

javascript - 我如何在 javascript 中反向迭代对象的属性?

转载 作者:搜寻专家 更新时间:2023-11-01 04:57:31 25 4
gpt4 key购买 nike

例如,我已经有一个充满有序键值的对象,我可以使用 for in 语句forwards 迭代它的键:

var keyvalues = {"key1":"value1","key2":"value2","key3":"value3"};
for(var key in keyvalues)
{
var value = keyvalues[key];
.............
}

现在我想向后迭代键,比如'key3'、'key2'、'key1',有没有神奇的方法可以做到这一点?

最佳答案

不能保证 for...in 循环中的顺序。

等等,什么?

对象键的“顺序”没有逻辑。如果你愿意,你可以捕获它们,然后对它们使用 .sortlanguage specificationfor...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.

你有什么选择:

在 JavaScript 中,大部分时间有序的列表都是用数组表示的。如果您喜欢有序列表,您可以使用数组:

var values= ["key1","key2","key3"];
for(var i=0;i<values.length;i++){
values[i];// order is guaranteed here.
}

由于订单有保证,您也可以轻松地reverse它:

var values= ["key1","key2","key3"].reverse();//reverse is an array method
for(var i=0;i<values.length;i++){
values[i];// order is guaranteed here.
}

如果您已经拥有一个对象,您可以获取它的键并根据某些标准对它们进行.sort,例如-在字典序中订单:

var obj = {"key1":"value1","key2":"value2","key3":"value3"};
var keys = Object.keys(obj).sort().reverse(); // see note
for(var i=0;i<keys.length;i++){
console.log(keys[i]);
}
// will output key3, key2, key1

注意:您可以将比较器传递给 .sort 并让它为您反转它而不是链接 - 这可能是更好的做法。出于教学目的,我保持这种方式。

关于javascript - 我如何在 javascript 中反向迭代对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17600368/

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