行列平たいコラム
2128 ワード
配列の平準化の概念である配列の平準化とは、一つの多次元配列を一次元配列に変化させることです.
[1,[2,3,[4,5]---------[1,2,3,4,5]を実現する.レデュース 配列の各項目を巡回して、値が配列なら再帰的に巡回します.そうでなければconcat.
Function flaten(arr){
reduceは二つのパラメータを含みます.コールバック関数は、totalの初期値に伝えられます.
//求め配列の各値を加算する和:arr.reduce((total,item)=>{/totalは以前の計算結果で、itemは配列の各値です. toStering&split 配列のtoStringメソッドを呼び出して、配列を文字列に変えてから、splitで分割して配列に還元します.
Function flaten(arr){ join&split 上記のtoStringと同様に、joinも配列を文字列に変換することができます.
Function flaten(arr){再帰 再帰的に各項目を巡回して、もし配列のためならば引き続き遍歴して、さもなくばconcat
Function flaten(arr){拡張演算子 s 6の拡張演算子は二次元配列を一次元に変化させることができます.
[].concat(…[1,2,3,[4,5])))//.[1,2,3,4,5]この結果によって遍歴をすることができます.arrに配列が含まれている場合は、一度の拡張演算子を使用します.
Function flaten(arr){while(arr.some)}{Aray.isAray}
配列arrを巡回して、arr[i]が配列であるならば、arr[i]が配列ではなく、以前の結果とconcatするまで再帰的に巡回する.は、二次元配列 に適用される.
let a=[[12,21],[1,2,3],[2,3,4]]
[1,[2,3,[4,5]---------[1,2,3,4,5]を実現する.
Function flaten(arr){
return arr.reduce((result, item)=> {
return result.concat(Array.isArray(item) ? flatten(item) : item);
}, []);
}reduceは、アキュムレータとして関数を受信し、配列内の各値(左から右へ)を縮小し、最終的に1つの値として計算する配列の方法である.reduceは二つのパラメータを含みます.コールバック関数は、totalの初期値に伝えられます.
//求め配列の各値を加算する和:arr.reduce((total,item)=>{/totalは以前の計算結果で、itemは配列の各値です.
return total + item;
}0);Function flaten(arr){
return arr.toString().split(',').map(function(item) {
return Number(item);
})
}split分割後に形成される配列の各値は文字列であるため、1つのmap法で配列を巡回して各項目を数値型に変換する必要があります.Function flaten(arr){
return arr.join(',').split(',').map(function(item) {
return parseInt(item);
})
)Function flaten(arr){
var res = [];
arr.map(item => {
if(Array.isArray(item)) {
res = res.concat(flatten(item));
} else {
res.push(item);
}
});
return res;
)[].concat(…[1,2,3,[4,5])))//.[1,2,3,4,5]この結果によって遍歴をすることができます.arrに配列が含まれている場合は、一度の拡張演算子を使用します.
Function flaten(arr){while(arr.some)}{Aray.isAray}
arr = [].concat(...arr);
} return arr;
5つの方法をまとめましたが、核心は一つしかありません.配列arrを巡回して、arr[i]が配列であるならば、arr[i]が配列ではなく、以前の結果とconcatするまで再帰的に巡回する.
let a=[[12,21],[1,2,3],[2,3,4]]
function turn (arr) {
return [].concat.apply([],arr);
}
console.log(turn(aa));
この方法は具体的な解析が必要です.https://blog.csdn.net/Hathawa...を参照してください.