用动态变量映射javascript键

时间:2016-10-30 03:04:25

标签: javascript jquery

var cover_or_contain = [
    {1: "cover"},
    {2: "contain"},
    {3: "contain"},
    {4: "contain"}
];

cover_or_contain[1]这只会返回对象{2:"contain"},我该如何才能“包含”?我无法使用密钥映射cover_or_contain[var]

3 个答案:

答案 0 :(得分:2)

考虑改变这个

var cover_or_contain = {
    1: "cover",
    2: "contain",
    3: "contain",
    4: "contain"
};

然后您可以通过其键号访问,例如cover_or_contain[1]

如果您仍想使用表示法,可以cover_or_contain[var-1][var]

访问

编辑: 由于对象来自外部源,您可能希望首先将其转换为更方便的格式。

function convert(data) {
    var ret = {};
    for (var i = 0; i < data.length; i++) {
        for (var k in data[i]) {
            if (data[i].hasOwnProperty(k)) {
               ret[k] = data[i][k];
            }
        }
    }
    return ret;
}

cover_or_contain = convert(cover_or_contain);

答案 1 :(得分:1)

无需转换为数组;只需使用Object.values()

> Object.values(cover_or_contain[1])[0]
'contain'

Object.values()返回一个数组,因此尾随[0]。)

答案 2 :(得分:1)

使用 cover_or_contain [1] [2]

<script type="text/javascript">
    var cover_or_contain = [
      {1:"cover"},
      {2: "contain"},
      {3: "contain"},
      {4: "contain"}
    ];


    console.log(cover_or_contain[1][2]);
</script>