配列をフラット化する方法配列のフラット化とは何ですか? 配列の平坦化: 多次元配列を 1 次元配列に変換することを指します。 例: 次の配列をフラット化します。 const arr = [1, [2, 3, [4, 5]]] // ---> [ 1, 2, 3, 4, 5 ] 1.flat() の使用flat() メソッドは ES10 で提案されました。指定された深さで配列を再帰的に走査し、走査されたサブ配列の要素とすべての要素を新しい配列にマージして返します。 (flat は「水平、平ら」という意味です) const result1 = arr.flat(Infinity) // 深さを無限に指定します console.log(result1) // [ 1, 2, 3, 4, 5 ] const result2 = arr.flat(1) // 深さを1に指定 console.log(結果2) // [ 1, 2, 3, [ 4, 5 ] ] const result3 = arr.flat(2) // 深さを2に指定します console.log(結果3) // [ 1, 2, 3, 4, 5 ] 2. 正規表現を使用する以下の方法で取得された配列要素は文字列に変換されますが、これは推奨されません。 const result1 = JSON.stringify(arr).replace(/\[|\]/g, '').split(',') console.log(result1) // [ '1', '2', '3', '4', '5' ] 配列要素は文字列に変換されます 上記の方法を最適化します。 const result2 = JSON.parse('[' + JSON.stringify(arr).replace(/\[|\]/g, '') + ']') console.log(結果2) // [ 1, 2, 3, 4, 5 ] 3.reduce()+concat()を使用する
関数flatten(arr){ 戻り値 arr.reduce((pre, current) => { pre.concat(Array.isArray(current) ? flatten(current) : current) を返します }, []) } const 結果 = flatten(arr) console.log(結果) // [ 1, 2, 3, 4, 5 ] 4. 関数の再帰を使用する
定数結果 = [] 関数exec(arr) { arr.forEach(アイテム => { Array.isArray(item) の場合 { 実行(アイテム) } それ以外 { 結果.push(アイテム) } }) } 実行(arr) console.log(結果) // [ 1, 2, 3, 4, 5 ] 5. スプレッド演算子 + concat() を使用する
some() メソッド: 配列内に、指定された関数テストに合格する要素が少なくとも 1 つあるかどうかをテストします (ブール値を返します)。 関数flatten(arr){ (arr.some(item => Array.isArray(item))) の間 { arr = [].concat(...arr) } リターン } const 結果 = flatten(arr) console.log(結果) // [ 1, 2, 3, 4, 5 ] 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Dockerを使用してブログサイトを素早く構築する方法の詳細な説明
>>: MySQL はどのようにしてデータベースの削除と暴走を効果的に防ぐことができますか?
重複したフォーム送信は、マルチユーザー Web アプリケーションで最も一般的で厄介な問題です。重複送...
1. リストリスト ulコンテナーには、一貫した構造とスタイルを持つテキストまたはグラフの形式が読...
html <div class="スピナー"></div&g...
目次1. 穴に落ちる2. 無駄な努力3. 若さの衝動4. 希望の光5. 問題KO 6. 追記1. 穴...
序文通常のユーザーはcrontabスケジュールタスクを定義します。たとえば、Oracleユーザーはス...
目次Prometheusはエクスポーターを介してMySQLを監視し、Grafanaチャートで表示しま...
まず、VMware Workstation 15.1 バージョンをダウンロードします。Thunder...
目次SQL実行順序ビンログ何ですかいつ生産されるのか何の役に立つんだディスクはいつドロップされますか...
位置が絶対の場合、関連する属性のパーセンテージは、参照先の要素 (包含ブロック) を基準として計算さ...
Vueに触れたばかりのパートナーの多くは、開発環境ではVueプロジェクトは正常であるが、パッケージ化...
IE6 と IE7 では CSS の解釈に多くの違いがあります。今日はそのうちの 1 つである高さに...
Dockerの機能1) すぐに始められるユーザーがプログラムを「Docker 化」するには、わずか数...
目次親コンポーネントは子コンポーネントと通信します子コンポーネントは親コンポーネントと通信しますコン...
序文Nginx (「エンジン エックス」と発音) は、リバース プロキシ、ロード バランサ、HTTP...
3次元縦棒グラフは、正面、右側、上部の3つの部分で構成されています。描画するときは、正面をグラフィッ...