[javascript] 二維陣列轉換為一維陣列

紀錄一下 javascript 二維陣列轉一維的幾種寫法跟方法


直覺的寫法:

var numbers=[ [1, 3], [5, 7], [9] ];
var result=[];
for(var i=0; i<numbers.length; i++)
{
    for(var j=0; j<numbers[i].length; j++)
    {
        result.push(numbers[i][j]);
    }
}
console.log(result);
// [1, 3, 5, 7, 9]

利用陣列的 reduce 函式(可參考此網址):

將陣列中的所有元素串接至一個陣列

var numbers=[ [1, 3], [5, 7], [9] ];
var result=numbers.reduce(function(previousValue, currentValue, currentIndex, array){
    return previousValue.concat(currentValue);
}, []);
console.log(result);
// [1, 3, 5, 7, 9]

利用函式方法內建的 apply 方法去取代 this (可參考此網址):

var numbers=[ [1, 3], [5, 7], [9] ];
var result=[].concat.apply([], numbers);
console.log(result);
// [1, 3, 5, 7, 9]

參考資料:

http://larry850806.github.io/2016/07/16/JS-tips/

 

Leave a Reply

Your email address will not be published. Required fields are marked *