1. 配列の平坦化の概念配列の平坦化は、多次元配列を 1 次元配列に変換するプロセスです。 [1, [2, 3, [4, 5]]] ------> [1, 2, 3, 4, 5] 2. 実装1. 減らす配列内の各項目を走査します。値が配列の場合は再帰的に走査し、それ以外の場合は 関数flatten(arr){ 戻り値 arr.reduce((結果, 項目)=> { 結果を返します。concat(Array.isArray(item) ? flatten(item) : item); }, []); }
// 配列内の値の合計を求めます: arr.reduce((total, item)=> { // total は前の計算結果、item は配列内の各項目の値です。 return total + item; }, 0); 2. toString と split配列の 関数flatten(arr){ arr.toString().split(',').map(function(item) { を返します。 Number(item)を返します。 }) } 分割後に形成される配列内の各項目は文字列であるため、配列を走査して各項目を数値型に変換するには map メソッドが必要です。 3. 結合と分割上記の 関数flatten(arr){ 戻り値 arr.join(',').split(',').map(function(item) { parseInt(item) を返します。 }) } 4. 再帰各項目を再帰的に走査し、配列の場合は走査を続行し、そうでない場合は 関数flatten(arr){ var res = []; arr.map(アイテム => { if(Array.isArray(item)) { res = res.concat(flatten(item)); } それ以外 { res.push(アイテム); } }); res を返します。 } 5. スプレッド演算子
[].concat(...[1, 2, 3, [4, 5]]); // [1, 2, 3, 4, 5] この結果に基づいて、トラバーサルを行うことができます。arr 関数flatten(arr){ while(arr.some(item=>Array.isArray(item))) { arr = [].concat(...arr); } arr を返します。 } 要約: これで、配列をフラット化する 5 つの 以下もご興味があるかもしれません:
|
<<: docker-compose が遅すぎる場合の解決策の詳細な説明
>>: MySQL の 3 つの浮動小数点型 (float、double、decimal) の違いと概要について簡単に説明します。
目次1. データベースとは何ですか? 2. データベースの分類は? 3. データベースとデータ構造の...
mysql maxとwhereの間の実行の問題SQLを実行します: テーブル「grades」を作成し...
この記事では、例を使用して、CentOS プラットフォーム上で LAMP 環境を迅速に構築する方法に...
リバースプロキシリバースプロキシとは、プロキシサーバーを介してユーザーのアクセス要求を受信し、ユーザ...
序文Excel は強力で、広く使用されています。 Web アプリケーションの登場と改善に伴い、ユーザ...
私は頻繁にシステムをインストールするので、インストールのたびにいくつかのソフトウェアを再インストール...
この記事では、参考までに、カルーセル効果の具体的なコードをJavaScript+CSSを使用して実装...
翻訳プログラムを例に挙げてみます。前回はWindowsでのアプリケーションのパッケージ化についてお話...
HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 HTML ...
CentOS7 システムを使用するのは今回が初めてで、ネットワーク構成を行う際に多くの問題が発生し...
Windows XP でフォルダーのプロパティ ダイアログ ボックスを使用すると、フォルダーの属性カ...
nginx が proxy_pass を設定する場合、末尾に "/" がある U...
docker hub から es イメージ (バージョン 6.4.2) をダウンロードしました。詳細...
まず、サーバーのハードウェアが現在のトラフィックをサポートするのに十分かどうかを確認します。通常の ...
目次1. プロジェクトフォルダ構造1. アセットフォルダ2. 図書館3. ローカル設定(ローカル) ...