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
我如何为循环获取数组值?
答案 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]);
}