有没有办法同时使用... in循环中的多个对象?

时间:2018-02-18 01:17:47

标签: javascript loops for-in-loop

有没有办法使用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);

1 个答案:

答案 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;
&#13;
&#13;