我想在Javascript中迭代无序字典的键。我甚至都不知道它是否存在。
目前我正在使用以下代码:
var l = [5,3,2];
var unorderedDict = {};
for (var i=0; i<l.length; i++) {
unorderedDict[l[i]] = 'foo';
}
我的词典就像:{2:'foo', 3:'foo', 5:'foo'}
或者在我的情况下,我想保留初始列表的顺序(所以:{5:'foo', 3:'foo', 2:'foo'}
)
我怎样才能做到这一点?
答案 0 :(得分:2)
您无法在object
维护订单。如果你想维护订单使用数组:
var l = [5, 3, 2];
var val = ['foo', 'bar', 'baz'];
var unorderedDict = [];
// ^^
for (var i = 0; i < l.length; i++) {
unorderedDict[l[i]] = val[i];
}
// Iterate over array:
for (var i = 0; i < unorderedDict.length; i++) {
if (unorderedDict[i]) {
console.log(unorderedDict[i]);
}
}
修改强>
如果您希望订单与l
中显示的相同:
// Iterate over array:
for (var i=0; i<l.length; i++) {
console.log(unorderedDict[l[i]]);
}