JavaScript Array Flatten と recursion_javascript スキルの使用の概要
JavaScript を使用して [1,2,3,[4,5, [6,7]]、[[[8]]]] のような配列を [1,2,3,4,5, 6, 7 、8] どうでしょうか?伝説の Array Flatten。
この種の問題に対処するには、通常、アルゴリズムに従ってプログラムをループさせる再帰が必要です。ある本には「再帰は強力なプログラミング手法である」と書かれていますが、それは JavaScript だけに属するものではありません。再帰は難しい場合もあれば、比較的単純な場合もあります (それでも一般的には比較的難しいです)。上記の問題に対処するには、再帰を使用する方が適しているはずです。ワーカーは以前にこれを実装しました。これは再帰的使用の簡単な例です:
フラット化: function(ac){
var array = [];
var group = this.arr;
if(ac) group =
for ( var i = 0; group.length; i ){
if(group[i] 配列のインスタンス){
array.concat(this. flatten(group[i])); >}else{
array = array.concat(group[i]);
}
}
配列を返す;
}
ネットで調べて最終的にプロトタイプに落ち着きました。彼の実装方法は、再帰的なインクリメントを処理する関数を抽象化し、この関数を使用して再帰を行うことです。どう言えばいいでしょうか?私が言いたいのは、これをフレームワークと呼ぶということです。以下は再帰を処理する関数です:
this.each(function(value,index) {
memo = iterator.call(context, memo, value,index);
}); >return memo;
}
この flatten 関数の最終的な実装は次のようになります。このコードはとても美しいです:
if (Object.isArray( value))
return array.concat(value. flatten());
return array;
もちろん、for ループを処理するには別の抽象関数が必要です。これが each 関数です。ちなみに、この各関数を flatten で取り出し、jQuery がどのように実行するかを学び、もちろん、配列だけでなく純粋なオブジェクトを処理することもできます:
コードをコピー
if (isObject) {
var obj = this.obj>for (obj のキー) {
if (callback.call(bind, key, obj[key]) === false) {
break;
}
}
} else {
var arr = this.obj;
if (Array.prototype.forEach) {
// ユーザーが false を返すと実行を継続します
// ネイティブのものは非常に恥ずかしいので、そのままにしておくべきです。それとも TODO としてマークしたままにしておきますか? < length && callback.call(bind , i, value) !== false; value = arr[ i]) {}
}
}
最近JavaScriptでよく遊んでいます。最近の記事とチームの内部ブログに投稿された記事を見てみました。それらはすべて JS で書かれています。恥ずかしい。大きな変化のようです。バランスを取る必要があります。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









タイトル: Array.Sort 関数を使用して C# で配列を並べ替える例 本文: C# では、配列は一般的に使用されるデータ構造であり、多くの場合、配列を並べ替える必要があります。 C# には Array クラスが用意されており、このクラスには配列を簡単に並べ替えるための Sort メソッドがあります。この記事では、C# で Array.Sort 関数を使用して配列を並べ替える方法を示し、具体的なコード例を示します。まず、Array.Sort 関数の基本的な使用法を理解する必要があります。 Array.So

PHP でプログラミングする場合、多くの場合、配列をマージする必要があります。 PHP には、配列のマージを完了するための array_merge() 関数が用意されていますが、配列内に同じキーが存在する場合、この関数は元の値を上書きします。この問題を解決するために、PHP は配列をマージして同じキーの値を保持できる array_merge_recursive() 関数を言語で提供し、プログラム設計をより柔軟にします。配列マージ

PHP には、配列操作をより便利かつ高速にする強力な配列関数が多数あります。 2 つの配列を結合して連想配列にする必要がある場合、PHP の array_combine 関数を使用してこの操作を実行できます。この関数は、実際には、ある配列のキーを別の配列の値として新しい連想配列に結合するために使用されます。次に、PHP の array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法を説明します。 array_comb について学ぶ

PHP プログラミングにおいて、配列は大量のデータを簡単に処理できる非常に重要なデータ構造です。 PHP は配列関連の関数を多数提供しており、array_fill() はその 1 つです。この記事では、array_fill() 関数の使い方と実際の応用におけるヒントを詳しく紹介します。 1. array_fill() 関数の概要 array_fill() 関数の機能は、同じ値で構成される指定された長さの配列を作成することです。具体的には、この関数の構文は次のとおりです。

Java は、さまざまな開発分野で広く使用されている非常に強力なプログラミング言語です。ただし、Java プログラミング中に、開発者は ArrayIndexOutOfBoundsException 例外に遭遇することがよくあります。では、この異常の一般的な原因は何でしょうか? ArrayIndexOutOfBoundsException は、Java の一般的なランタイム例外です。これは、データにアクセスするときに、配列の添字が配列の範囲を超えていることを意味します。一般的な理由には次のようなものがあります。

PHP プログラミングでは、配列は頻繁に使用されるデータ型です。 array_change_key_case() 関数など、多数の配列操作関数もあります。この関数は、配列内のキー名の大文字と小文字を変換して、データ処理を容易にすることができます。この記事では、PHP での array_change_key_case() 関数の使用方法を紹介します。 1. 関数の構文とパラメータ array_change_ke

LinkedList クラスの toArray() メソッドは、現在の LinkedList オブジェクトをオブジェクト型の配列に変換して返します。この配列には、このリスト内のすべての要素が正しい順序 (最初の要素から最後の要素まで) で含まれています。これは、配列ベースの API とコレクションベースの API の間のブリッジとして機能します。そこで、LinkedList を配列に変換し、LinkedList クラスをインスタンス化します。 add() メソッドを使用してデータを設定します。上記で作成したリンク リストで toArray() メソッドを呼び出し、オブジェクトの配列を取得します。オブジェクトの配列の各要素を文字列に変換します。例 importjava.util.Arrays;importjava.uti のリアルタイム デモンストレーション

Python の配列モジュールは事前定義された配列であるため、標準のリストよりもメモリ内で使用するスペースがはるかに少なく、追加、削除、インデックス付け、スライスなどの要素レベルの操作を高速に実行することもできます。さらに、配列内のすべての要素は同じ型であるため、平均値、最大値、最小値の計算など、配列が提供する効率的な数値演算関数を使用できます。さらに、配列モジュールは、配列オブジェクトのバイナリ ファイルへの直接の書き込みと読み取りもサポートしているため、大量の数値データを処理する際の効率が向上します。したがって、大量の同種データを処理する必要がある場合は、Python の配列モジュールを使用してコードの実行効率を最適化することを検討してください。配列モジュールを使用するには、まず次のことを行う必要があります。
