Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 在循环中从数组的开头删除项,而不改变原始数组_Javascript_Arrays_Array Splice - Fatal编程技术网

Javascript 在循环中从数组的开头删除项,而不改变原始数组

Javascript 在循环中从数组的开头删除项,而不改变原始数组,javascript,arrays,array-splice,Javascript,Arrays,Array Splice,所以我在使用javascript数组拼接时遇到了一个问题,它会像 let arr1 = [1,2,3,4,5] for(i = 0; i < 5; i++){arr1.splice(i,1);} 让arr1=[1,2,3,4,5] 对于(i=0;i

所以我在使用javascript数组拼接时遇到了一个问题,它会像

let arr1 = [1,2,3,4,5]
for(i = 0; i < 5; i++){arr1.splice(i,1);}
让arr1=[1,2,3,4,5]
对于(i=0;i<5;i++){arr1.splice(i,1);}
在上述示例中,arr1在每次迭代后都会发生更改,如:-[2,3,4,5]…[3,4,5]…等

我想要实现的是:-

let arr1 = [1,2,3,4,5];
for(i = 0; i < 5; i++){
    let arr2 = arr1.splice(i,1);
}
设arr1=[1,2,3,4,5];
对于(i=0;i<5;i++){
设arr2=arr1.拼接(i,1);
}

该结果应给出所有迭代中的arr1为[1,2,3,4,5]。。。但是arr2作为[2,3,4,5]…[3,4,5]…等等。。。。。基本上,我希望拼接函数不操纵原始数组,而是在新数组中给出结果,并且原始数组在所有迭代过程中保持不变。。。有什么方法可以做到这一点吗?

如果您想在公共数组中返回那些部分数组(现在代码所做的覆盖单个变量没有多大意义),您可以使用

const src=[1,2,3,4,5],
res=src.map((u,i,s)=>s.slice(i))
console.log(JSON.stringify(res))

。作为控制台包装{min height:100%;}
您可以使用索引加1对数组进行切片

让arr1=[1,2,3,4,5];
for(设i=0;i<5;i++){
console.log(…arr1.slice(i+1));

}
请添加第一次迭代的结果。