有没有办法使用for ... in循环同时迭代两个对象的属性?假设为了论证我需要它们在控制台日志中背靠背出现(即element1的第一个属性,后跟element2的第一个属性,element1的第二个属性,element2的第二个属性,依此类推...... ...)。这是一个没有直接实际应用的玩具示例。我只想了解这个概念。如果没有办法用for ... in循环有没有办法实现相同的效果,假设我对element1和element2的属性数量一无所知?以下代码显然不会起作用,但会捕捉我的意图精神(我希望......)
function test(element1, element2) {
for(var x in element1) {
console.log(element1[x]);
console.log(element2[x]);
}
return true;
}
element1 = {0:0, 1:1, 2:2};
element2 = {a:0, b:1, c:2};
test(element1, element2);
答案 0 :(得分:0)
使用键并检查两个阵列的长度。
function test(element1, element2) {
var keys1 = Object.keys(element1),
keys2 = Object.keys(element2),
loop = 0;
while(loop < keys1.length || loop < keys2.length) {
if (loop < keys1.length) console.log(element1[keys1[loop]]);
if (loop < keys2.length) console.log(element2[keys2[loop]]);
loop++;
}
return true;
}
var element1 = { '0': 0, '1': 1, '2': 2};
var element2 = { a: 0, b: 1, c: 2, d: 3, z: 6};
test(element1, element2);
&#13;
.as-console-wrapper {
max-height: 100% !important
}
&#13;