Javascript 是否可以使用位运算符执行与“1”等效的操作++;i、 --j";一下子?

Javascript 是否可以使用位运算符执行与“1”等效的操作++;i、 --j";一下子?,javascript,algorithm,optimization,bit-manipulation,bitwise-operators,Javascript,Algorithm,Optimization,Bit Manipulation,Bitwise Operators,所以我想做一些类似的事情 for ( var i = 0, j = (arr.length - 1); i < j; (++i; --j;) ) 是否可以在for循环的声明中完成这一切?在i和j上是否有一些奇特的按位操作可以执行++i--j在一条语句中?您要找的是逗号运算符吗 for(var i=0, j=10; i<j; i++, j--) for(var i=0,j=10;i您要找的是逗号运算符吗 for(var i=0, j=10; i<j; i++, j--) f

所以我想做一些类似的事情

for ( var i = 0, j = (arr.length - 1); i < j; (++i; --j;) )

是否可以在for循环的声明中完成这一切?在
i
j
上是否有一些奇特的按位操作可以执行
++i--j
在一条语句中?

您要找的是逗号运算符吗

for(var i=0, j=10; i<j; i++, j--)

for(var i=0,j=10;i您要找的是逗号运算符吗

for(var i=0, j=10; i<j; i++, j--)

for(var i=0,j=10;i您要找的是逗号运算符吗

for(var i=0, j=10; i<j; i++, j--)

for(var i=0,j=10;i您要找的是逗号运算符吗

for(var i=0, j=10; i<j; i++, j--)

for(var i=0,j=10;i按位运算符确实做到了这一点:

for(var i=0,j=arr.length-1; i < j; i++ & j--){
    alert(arr[i]+arr[j]);
}
for(变量i=0,j=arr.length-1;i
这是因为++和-,都有返回值。根据您是将它们用作递增之前还是递增之后的运算符,返回值是递增之前还是之后的值。(与递减运算符类似)

由于JavaScript没有强类型,您可以将整数值与位运算符一起使用。数字!=0将解释为true,0将解释为false。使用&运算符是为了计算两个操作数。&仅在左侧计算为true时计算右侧


不用说,所有这些都是不必要的伎俩,应该用更干净的代码来代替。在您的示例中,只要用arr.length-i-1到处替换j,您就不必处理两个循环变量。

按位运算符确实可以做到这一点:

for(var i=0,j=arr.length-1; i < j; i++ & j--){
    alert(arr[i]+arr[j]);
}
for(变量i=0,j=arr.length-1;i
这是因为++和-,都有返回值。根据您是将它们用作递增之前还是递增之后的运算符,返回值是递增之前还是之后的值。(与递减运算符类似)

由于JavaScript没有强类型,您可以将整数值与位运算符一起使用。数字!=0将解释为true,0将解释为false。使用&运算符是为了计算两个操作数。&仅在左侧计算为true时计算右侧


不用说,所有这些都是不必要的伎俩,应该用更干净的代码来代替。在您的示例中,只要用arr.length-i-1到处替换j,您就不必处理两个循环变量。

按位运算符确实可以做到这一点:

for(var i=0,j=arr.length-1; i < j; i++ & j--){
    alert(arr[i]+arr[j]);
}
for(变量i=0,j=arr.length-1;i
这是因为++和-,都有返回值。根据您是将它们用作递增之前还是递增之后的运算符,返回值是递增之前还是之后的值。(与递减运算符类似)

由于JavaScript没有强类型,您可以将整数值与位运算符一起使用。数字!=0将解释为true,0将解释为false。使用&运算符是为了计算两个操作数。&仅在左侧计算为true时计算右侧


不用说,所有这些都是不必要的伎俩,应该用更干净的代码来代替。在您的示例中,只要用arr.length-i-1到处替换j,您就不必处理两个循环变量。

按位运算符确实可以做到这一点:

for(var i=0,j=arr.length-1; i < j; i++ & j--){
    alert(arr[i]+arr[j]);
}
for(变量i=0,j=arr.length-1;i
这是因为++和-,都有返回值。根据您是将它们用作递增之前还是递增之后的运算符,返回值是递增之前还是之后的值。(与递减运算符类似)

由于JavaScript没有强类型,您可以将整数值与位运算符一起使用。数字!=0将解释为true,0将解释为false。使用&运算符是为了计算两个操作数。&仅在左侧计算为true时计算右侧


不用说,所有这些都是不必要的诡计,应该用更干净的代码来代替。在您的示例中,只要用arr.length-i-1到处替换j,您就不必处理两个循环变量。

虽然其他答案清楚地说明了如何实现您想要的目标,但如果需要,我建议您不要使用两个计数器可以避免。在这里,你可以使用
arr.length-j-1
而不是
i
当其他答案清楚地显示如何实现你想要的时,我宁愿建议你如果可以避免的话,不要使用两个计数器。在这里,你可以使用
arr.length-j-1
而不是
i
而其他答案则可以使用
i
如果你能避免的话,我建议你不要使用两个计数器。在这里你可以使用
arr.length-j-1
而不是
I

而其他答案清楚地说明了如何实现你想要的,如果你能避免的话,我建议你不要使用两个计数器。在这里你可以使用e> arr.length-j-1
而不是
i

JavaScript有逗号运算符吗?@davidisenstat有。JavaScript有逗号运算符吗?@davidisenstat有。JavaScript有逗号运算符吗?@davidisenstat有。JavaScript有逗号运算符吗?@davidisenstat有。