Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在for of循环中使用进行阵列分解?_Javascript - Fatal编程技术网

Javascript 在for of循环中使用进行阵列分解?

Javascript 在for of循环中使用进行阵列分解?,javascript,Javascript,我正在试图理解以下代码?为什么我会得到以下输出 for(设[i,j,…x][ [2,3,4,5,10,11,12,13]。过滤器(e=>e>5) ]) { 控制台错误(x) } 首先,您需要查看[2,3,4,5,10,11,12,13].filter(e=>e>5) 返回:[10,11,12,13] 之后将应用[i,j,…x]=[10,11,12,13]。这意味着,i=10,j=11,x取其余部分,这意味着x=[12,13] 我们打印了x,瞧,这是[12,13] 但是[[10,11,12,1

我正在试图理解以下代码?为什么我会得到以下输出

for(设[i,j,…x][
[2,3,4,5,10,11,12,13]。过滤器(e=>e>5)
]) {
控制台错误(x)
}
首先,您需要查看
[2,3,4,5,10,11,12,13].filter(e=>e>5)
返回:
[10,11,12,13]

之后将应用
[i,j,…x]=[10,11,12,13]
。这意味着,
i=10
j=11
,x取其余部分,这意味着
x=[12,13]

我们打印了
x
,瞧,这是
[12,13]


但是
[[10,11,12,13]
呢?首先请参见下面的代码段:

让[k,l,…y]=[2,3,4,5,10,11,12,13]
控制台日志(k、l、y)
让[i,j,…x]=[2,3,4,5,10,11,12,13]]

log(i,j,x)
您只需删除
i,j
for(让[…x]为[
[2,3,4,5,10,11,12,13]。过滤器(e=>e>5)
]) {
控制台错误(x)

}
如果要获取大于5的数字,可以使用此代码

for (let [i, j, ...x] of [
    [2, 3, 4, 5, 10, 11, 12, 13].filter(e => e > 5)
  ]) {
  console.error(x)
}
var numberArray=  [2, 3, 4, 5, 10, 11, 12, 13];
var numberBiggerThanFive = [];
for(i in numberArray){
 if(i > 5 ){
   numberBiggerThanFive.push(i)
   }
 }
console.log(numberBiggerThanFive);

i
是10,
j
是11,
x
保留其余部分,因此
[12,13]
。只需运行我答案的片段。这种情况下的for..of循环使用多个迭代变量。因此,它将从数组中获取许多元素。在第一个循环中,数组的第一个元素将分配给i,第二个元素分配给j,所有其他元素分配给x。循环将在这里结束,因为“…x”已经占用了所有剩余的元素,并且没有留下任何内容。当然,在初始数组中使用filter只会留下四个元素[10,11,12,13]。所以:x是10,j是11,x是[12,13]。编辑:播放一点代码。永远只有一次迭代,即使没有“…x”变量。@briosheje,我添加了一个解释!之后,将应用[10,11,12,13]中的[i,j,…x]。我将更改为:
[I,j,…x]=[10,11,12,13]
。“of”是误导性的,因为在该上下文中,
of
需要一个迭代器,这当然是可以找到的,但会引发异常。这是一个赋值,对[10,11,12,13]使用for..of会引起一个TypeError:)。不管怎么说,添加更多解释做得很好,这是所需的高质量答案。更改它,感谢您的提示和友好的话语!
for (let [i, j, ...x] of [
    [2, 3, 4, 5, 10, 11, 12, 13].filter(e => e > 5)
  ]) {
  console.error(x)
}
var numberArray=  [2, 3, 4, 5, 10, 11, 12, 13];
var numberBiggerThanFive = [];
for(i in numberArray){
 if(i > 5 ){
   numberBiggerThanFive.push(i)
   }
 }
console.log(numberBiggerThanFive);