用for循环在数组中获取值

时间:2016-07-18 17:25:09

标签: javascript arrays for-loop syntax

我有:

var myVariable= {
    var_one: ["satu", 'uno'],
    var_two: ["dua", 'dos'],
    var_three: ["tiga", 'tres'],
    var_four: ["empat", 'cuatro'],
    var_five: ["lima", 'cinco'],
    var_six: ["enam", 'seis']
};

for (var component in myVariable) {
    document.getElementById(component[0]).value = '';
}

这里的问题是: 组件值实际上正在返回:

  

var_one ... var_six

虽然我期待:

  

satu ... enam

我如何为循环获取数组值?

6 个答案:

答案 0 :(得分:3)

component是关键,而不是价值,请使用此:

var myVariable= {
    var_one: ["satu", 'uno'],
    var_two: ["dua", 'dos'],
    var_three: ["tiga", 'tres'],
    var_four: ["empat", 'cuatro'],
    var_five: ["lima", 'cinco'],
    var_six: ["enam", 'seis']
};

for (var component in myVariable) {
    document.getElementById(myVariable[component][0]).value = '';
}

答案 1 :(得分:3)

您正在做的是迭代对象中的键,而不是值。所以你的代码看起来像是:

for (var key in myVariable) {
    var value_you_want = myVariable[key][0];
    document.getElementById(value_you_want).value = '';
}

关注:

您可能还想检查以确保该键是对象的属性,而不是某些情况下对象的原型:

for (var key in myVariable) {
    var value_you_want = myVariable[key][0];

    if(myVariable.hasOwnProperty(key)) {                  //Include this condition
        document.getElementById(value_you_want).value = '';
    }
}

答案 2 :(得分:2)

for ... in循环通过数组中的索引循环,而不是值。

如果您有阵列

["one", "two", "three"]

然后for ... in循环将返回

0, 1, 2

如果你有ES6或者你需要做

,你需要使用for ... of循环
var value = myArray[component]

从对象中获取数组

答案 3 :(得分:2)

要检索对象键的值,请使用object.key 在您的情况下,它将返回一个数组。如果您需要零索引元素,请执行myVariable[component][0]

var myVariable= {
    var_one: ["satu", 'uno'],
    var_two: ["dua", 'dos'],
    var_three: ["tiga", 'tres'],
    var_four: ["empat", 'cuatro'],
    var_five: ["lima", 'cinco'],
    var_six: ["enam", 'seis']
};

for (var component in myVariable) {
    document.getElementById(myVariable[component][0]).value="";
}

答案 4 :(得分:1)

像这样使用密钥component

myVariable[component][0]

答案 5 :(得分:0)

您可以使用for...in循环中的键来获取值:

for (var component in myVariable) {
    document.getElementById(myVariable[component][0]).value = '';
}

或者,如果myVariable是可迭代的,则可以使用for...of循环:

var myVariable= [["satu", 'uno'],
    ["dua", 'dos'],
    ["tiga", 'tres'],
    ["empat", 'cuatro'],
    ["lima", 'cinco'],
    ["enam", 'seis']
    ];

for (var component of myVariable) {
    console.log(component[0]);
}