blog

アレイ・フラット化の実装

let arr = [1, [2, [3, [4, 5]], 6]; // メソッド 1 arr.flat は、任意の入れ子レベルの配列を展開します。 // 方法1 arr.flat は、任意の入れ子...

Apr 5, 2020 · 1 min. read
Share this
let arr = [1, [2, [3, [4, 5]]], 6];
// 方法1.flat( Infinity ) 任意の入れ子レベルの配列を展開する。
let arr1 = arr.flat(Infinity);
console.log(arr1);
// 方法2 レギュラー
let arrStr = JSON.stringify(arr);
let reg = /(\[|\])/g;
let arr2 = arrStr.replace(reg, "").split(",").map(Number);
console.log(arr2);
// 方法3:再帰的アプローチ
let arr3 = [];
function flat(arr) {
 arr.forEach((ele) => {
 if (ele instanceof Array) {
 flat(ele);
 } else {
 arr3.push(ele);
 }
 });
}
flat(arr);
console.log(arr3);
// 方法4:reduce  
function flat(arr) {
 return arr.reduce((temp, curr) => {
 return temp.concat(Array.isArray(curr) ? flat(curr) : curr);
 }, []);
}
console.log(flat(arr));
//方法5... と連結する。
while (arr.some(Array.isArray)) {
 arr = [].concat(...arr);
}
Read next

webpackベースのReactパッケージングツールを書く (6)

とほぼ同じで、jsとjsxファイルのコンパイルにbabelを使用し、ここではjs, jsx, ts, tにtscコマンドを使用しているだけです。

Apr 4, 2020 · 4 min read

一般的なJS(js)

Apr 3, 2020 · 1 min read

python-tools-pyinstaller

Apr 2, 2020 · 1 min read