Fli*_*ion 11 javascript arrays loops
对不起,如果这是一个dupplicate,似乎无法找到它.
var a = [1,2,3,4];
a.forEach(function(value){
  if(value == 1) a.push(5);
  console.log(value);
});
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法(任何类型的循环或数据类型),这样它将在循环期间输出1 2 3 4 5(或以任何顺序,只要所有5个数字都在那里)
new*_*rey 27
使用Array.prototype.forEach()将不回调适用于附加到或从执行期间数组中删除元素.从规格:
forEach处理的元素范围在第一次调用callbackfn之前设置.callbackfn将不会访问在调用forEach之后附加到数组的元素.
但是,您可以使用标准for循环,并在每次迭代期间检查数组的当前长度:
for (var i = 0; i < a.length; i++) {
    if (a[i] == 1) a.push(5);
    console.log(a[i]);
}
Run Code Online (Sandbox Code Playgroud)
        明显的解决方案:
var a = [1,2,3,4];
for (var i=0; i<a.length; i++){
  var value = a[i];
  if(value == 1) a.push(5);
  console.log(value);
}
Run Code Online (Sandbox Code Playgroud)