JS while 循环数组[i++]。它是如何工作的?

Posted

技术标签:

【中文标题】JS while 循环数组[i++]。它是如何工作的?【英文标题】:JS while loop array[i++]. How does it work? 【发布时间】:2016-04-20 05:56:20 【问题描述】:

我想知道它是如何工作的。我猜“right[r++]”在while循环中增加了“r”。或者它显示了我们将哪个“正确”元素推向“结果”?

function merge(left, right)
  var result = [],
      lLen = left.length,
      rLen = right.length,
      l = 0,
      r = 0;
  while(l < lLen && r < rLen)
     if(left[l] < right[r])
       result.push(left[l++]);
     
     else
       result.push(right[r++]);
    
    
  return result.concat(left.slice(l)).concat(right.slice(r));

谢谢。

【问题讨论】:

问题是,什么不起作用,你的问题是什么? 【参考方案1】:
result.push(right[r++]);

本质上是

的简写
result.push(right[r]);
r = r + 1;

变量后面的 ++ 运算符返回变量在递增之前的值。

为了比较,在变量之前使用它

result.push(right[++r]);

会达到与

相同的结果
r = r + 1;
result.push(right[r]);

【讨论】:

++r 将在返回前递增 ;)【参考方案2】:

right[r++] 和这样写是一样的:

right[r]
r=r+1

这称为后增量。也有预增。应该是这样写的:

right[++r]

相当于

r=r+1
right[r]

【讨论】:

以上是关于JS while 循环数组[i++]。它是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

如何将在JavaScript中保存为数组的数字与while循环相加

Java while循环查询[关闭]

JS数组+JS循环题

js循环(while循环,do while循环,for循环)相关知识点及练习

js如何动态循环给数组名加入变量值?

js定时执行达到条件退出循环