Javascript中的无序字典

时间:2015-05-10 08:48:02

标签: javascript dictionary

我想在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'}

我怎样才能做到这一点?

1 个答案:

答案 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]]);
}