Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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循环将嵌套数组转换为单个数组_Javascript_Loops_For Loop_Nested - Fatal编程技术网

Javascript:使用嵌套for循环将嵌套数组转换为单个数组

Javascript:使用嵌套for循环将嵌套数组转换为单个数组,javascript,loops,for-loop,nested,Javascript,Loops,For Loop,Nested,这只是我正在做的一个简单的javascript练习 我正在尝试转换此数组 var array = [ [1,2], [3,4], [5,6] ]; 进入 array = [1, 2, 3, 4, 5, 6]; 通过使用这个嵌套for循环 var series; var storage = []; for (var i = 0; i < array.length; i++) { for (var j = 0; j < array[i].length; j++) {

这只是我正在做的一个简单的javascript练习

我正在尝试转换此数组

var array = [
[1,2],
[3,4],
[5,6]
];
进入

array = [1, 2, 3, 4, 5, 6];
通过使用这个嵌套for循环

var series;
var storage = [];
for (var i = 0; i < array.length; i++) {
    for (var j = 0; j < array[i].length; j++) {
        series = array[i][j];
        for (var k = 0; k < 6; k++) {
            storage[k] = series;
        };
    };
};

console.log(storage);
为什么这是输出?我如何修复它

    series = array[i][j];
    for (var k = 0; k < 6; k++) {
        storage[k] = series;
    };
或者,如果您的JS机器具有足够的实验性,只需

var storage = array.flat()

您可以使用
array.flat()

参考:


您可以像这样使用ES6扩展语法:

for (let element of array){
    storage.push( ... el )
}
您可以使用和的组合在一行中实现您想要的

var数组=[
[1, 2],
[3, 4],
[5, 6]
];
log(array.reduce((a,v)=>a.concat(v),[])
for(var k=0;k<6;k++){
不是必需的。
array[i]
将是主数组中的每个元素,因此迭代
array[i]
可以访问每个元素

var数组=[
[1, 2],
[3, 4],
[5, 6]
];
var系列;
var存储=[];
对于(var i=0;iconsole.log(存储);
Array.concat可以自己完成这项工作

var merged = [].concat.apply([], array);
var数组=[
[1,2],
[3,4],
[5,6]
];
var newArray=[];
for(设i=0;i
storage=[];
对于(var i=0;i

var array = [
  [1,2],
  [3,4],
  [5,6]
];
array.flat();
// 1,2,3,4,5,6....
for (let element of array){
    storage.push( ... el )
}
var merged = [].concat.apply([], array);
storage = [];
for(var i=0; i<array.length; i++)
    storage = storage.concat(array[i]);