検索
ホームページウェブフロントエンドjsチュートリアルUnderscore.js_Othersの一般的なメソッドのまとめ

概要

Underscore.js は非常に無駄のないライブラリで、圧縮されたのはわずか 4KB です。これは、JavaScript プログラミングを大幅に容易にする、数十の関数型プログラミング手法を提供します。 MVC フレームワーク backbone.js はこのライブラリに基づいています。

アンダースコア (_) オブジェクトを定義しており、関数ライブラリのすべてのメソッドがこのオブジェクトに属します。これらのメソッドは、コレクション、配列、関数、オブジェクト、ユーティリティの 5 つのカテゴリに大別できます。

node.js の下にインストールします

Underscore.js はブラウザ環境だけでなく、node.js でも使用できます。インストールコマンドは次のとおりです:

コードをコピー コードは次のとおりです:

npm install アンダースコア

ただし、node.jsでは_を変数名として直接使用することができないため、以下のメソッドでunderscore.jsを使用します。
コードをコピー コードは次のとおりです:

var u = require("アンダースコア");

コレクションに関連するメソッド

JavaScript 言語のデータ コレクションには、配列とオブジェクトという 2 つの構造が含まれます。次の方法は両方の構造に適用されます。

地図

このメソッドは、コレクションの各メンバーに対して何らかの操作を順番に実行し、返された値を新しい配列に格納します。

コードをコピー コードは次のとおりです:

_.map([1, 2, 3], function(num){ return num * 3; }); // [3, 6, 9] _.map({1 : 1, 2 : 2, 3 : 3) }, function(num, key){ return num * 3 });

それぞれ

このメソッドはマップに似ており、コレクションの各メンバーに対して順番に何らかの操作を実行しますが、値を返しません。


コードをコピー コードは次のとおりです:
_.each([1, 2, 3], アラート); _.each({1 : 1, 2 : 2, 3 : 3}, アラート);

減らす

このメソッドは、セットの各メンバーに対して何らかの演算を順番に実行し、演算結果を特定の初期値に累積し、すべての演算が完了した後に累積された値を返します。

このメソッドは 3 つのパラメータを受け取ります。最初のパラメーターは処理されるコレクション、2 番目のパラメーターは各メンバーで動作する関数、3 番目のパラメーターは蓄積に使用される変数です。

_.reduce([1, 2, 3], function(memo, num){ return memo num; }, 0); // 6

reduce メソッドの 2 番目のパラメーターは操作関数であり、この関数自体は 2 つのパラメーターを受け取ります。1 番目は累算に使用される変数で、2 番目はセットの各メンバーの値です。

フィルターと拒否

フィルター メソッドは、コレクションの各メンバーに対して何らかの操作を順番に実行し、操作結果が true であるメンバーのみを返します。


コードをコピー コードは次のとおりです:
_.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // [2, 4, 6]

拒否メソッドは、操作結果が false のメンバーのみを返します。

コードをコピー コードは次のとおりです:
_.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // [1, 3, 5]

あらゆるもの

every メソッドは、コレクションの各メンバーに対して順番に何らかの操作を実行します。すべてのメンバーの操作結果が true の場合は true を返し、それ以外の場合は false を返します。


コードをコピー コードは次のとおりです:
_.every([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // false

一部のメソッドは、1 つのメンバーの演算結果が true である限り true を返し、それ以外の場合は false を返します。

コードをコピー コードは次のとおりです:
_.some([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // true

見つける

このメソッドは、コレクションの各メンバーに対して何らかの操作を順番に実行し、操作結果が true である最初のメンバーを返します。すべてのメンバーの演算結果が false の場合は、unknown が返されます。

コードをコピー コードは次のとおりです:

_.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // 2

には

が含まれます

値がコレクション内にある場合、このメソッドは true を返し、それ以外の場合は false を返します。

コードをコピー コードは次のとおりです:

_.contains([1, 2, 3], 3); // true

countBy

このメソッドは、集合の各メンバーに対して何らかの演算を順番に実行し、同じ演算結果を持つメンバーを 1 つのカテゴリとしてカウントし、最後に各演算結果に対応するメンバーの数を示すオブジェクトを返します。

コードをコピー コードは次のとおりです:

_.countBy([1, 2, 3, 4, 5], function(num) { return num % 2 == 0 ? 'even' : 'odd'; }); // {奇数: 3, 偶数: 2 }

シャッフル

このメソッドはシャッフルされたコレクションを返します。

コードをコピー コードは次のとおりです:

_.shuffle([1, 2, 3, 4, 5, 6]) // [4, 1, 6, 3, 5, 2]

サイズ

このメソッドは、コレクションのメンバーの数を返します。

コードをコピー コードは次のとおりです:

_.size({1 : 1, 2 : 2, 3 : 3}); // 3

オブジェクトに関連するメソッド


toArray

このメソッドはオブジェクトを配列に変換します。

コードをコピー コードは次のとおりです:

_.toArray({a:0,b:1,c:2}) // [0, 1, 2]

摘む

このメソッドは、複数のオブジェクトの特定の属性の値を配列に抽出します。

コードをコピー コードは次のとおりです:

var stooges = [{name : 'moe', 年齢 : 40}, {name : 'larry', 年齢 : 50}, {name : 'curly', 年齢 : 60}]; ); // [「萌え」、「ラリー」、「カーリー」]

関数に関連するメソッド

バインド

このメソッドは関数の実行時コンテキストをバインドし、それを新しい関数として返します。

コードをコピー コードは次のとおりです:

_.bind(関数, オブジェクト, [*引数])

以下の例を参照してください。
コードをコピー コードは次のとおりです:

var o = { p: 2, m: function (){console.log(p);} }; o.m() // 2 _.bind(o.m,{p:1})() // 1

すべてバインド

このメソッドは、(特に指定されていない限り) オブジェクトのすべてのメソッドをオブジェクトにバインドします。

コードをコピー コードは次のとおりです:

var buttonView = { label : 'アンダースコア', onClick : function(){alert('clicked: ' this.label) }, onHover : function(){ console.log('hovering: ' this.label); ; _.bindAll(buttonView);

部分的

このメソッド バインディングは関数をパラメーターにバインドし、それを新しい関数として返します。

コードをコピー コードは次のとおりです:

var add = function(a, b) { return a b; }; // 15

メモする

このメソッドは、特定のパラメーターに対する関数の実行結果をキャッシュします。

コードをコピー コードは次のとおりです:

var fibonacci = _.memoize(function(n) { return n

関数に複数のパラメーターがある場合、キャッシュを識別するハッシュ値を生成するために hashFunction を提供する必要があります。

遅延

このメソッドは、関数の実行を指定した時間延期できます。

コードをコピー コードは次のとおりです:

var log = _.bind(console.log, console) _.lay(log, 1000, '後でログに記録'); // '後でログに記録'

延期

このメソッドは、setTimeout による実行の遅延の効果と同様に、実行されるタスクの数が 0 に達するまで関数の実行を延期できます。

コードをコピー コードは次のとおりです:

_.defer(function(){alert('deferred'); });

スロットル

このメソッドは、関数の新しいバージョンを返します。この新しいバージョンの関数を連続して呼び出す場合は、次の実行をトリガーするまでに一定時間待機する必要があります。

コードをコピー コードは次のとおりです:

// updatePosition 関数の新しいバージョンを返します var throttled = _.throttle(updatePosition, 100) // 関数の新しいバージョンは 100 ミリ秒ごとにのみトリガーされます $(window).scroll(throttled);

デバウンス

このメソッドは、関数の新しいバージョンも返します。この新しいバージョンの関数が呼び出されるたびに、前の呼び出しの間に一定の時間が必要です。そうでないと、呼び出しは無効になります。その典型的な用途は、ユーザーがボタンをダブルクリックしてフォームが 2 回送信されるのを防ぐことです。

コードをコピー コードは次のとおりです:

$("ボタン").on("クリック", _.debounce(submitForm, 1000));

1 回

このメソッドは関数の新しいバージョンを返すため、この関数は 1 回だけ実行できます。主にオブジェクトの初期化に使用されます。

コードをコピー コードは次のとおりです:

varInitialize = _.once(createApplication); // アプリケーションは 1 回だけ作成されます

このメソッドは、関数の新しいバージョンを返します。この関数は、主に、反応する前に一連の操作が完了したことを確認するために使用されます。

コードをコピー コードは次のとおりです:

var renderNotes = _.after(notes.length, render); _.each(notes, function(note) { note.asyncSave({success: renderNotes}); }); // すべてのノートが保存された後、renderNote が実行されます。 1 回のみ実行

ラップ

このメソッドは関数をパラメータとして受け取り、それを別の関数に渡し、最終的に前の関数の新しいバージョンを返します。

コードをコピー コードは次のとおりです:

var hello = function(name) { return "hello: " name }; hello = _.wrap(hello, function(func) { return "before, " func("moe") "; }); (); // '前、こんにちは: もえ、後'

作成

このメソッドは、一連の関数をパラメーターとして受け取り、前の関数の実行結果が次の関数の実行パラメーターとして使用されます。つまり、f(g(),h()) の形式を f(g(h())) に変換します。

コードをコピー コードは次のとおりです:

var welcome = function(name){ return "こんにちは: " name; var exclaim = function(statement){ return ステートメント "!" }; var welcome = _.compose('moe') ); // 'こんにちは!'

ツールメソッド

テンプレート

このメソッドは、HTML テンプレートをコンパイルするために使用されます。 3 つのパラメータを受け入れます。

コードをコピー コードは次のとおりです:

_.template(templateString, [データ], [設定])

3 つのパラメータの意味は次のとおりです:

templateString: テンプレート文字列
データ: 入力テンプレートデータ
設定: 設定

テンプレート文字列

テンプレート文字列 templateString は通常の HTML 言語であり、変数は の形式で挿入されます。データ オブジェクトは変数の値を提供します。

コードをコピー コードは次のとおりです:

var txt = "


コードをコピー コードは次のとおりです:

"; _.template(txt, {word : "Hello World"}) // "

Hello World

コードをコピーします コードは次のとおりです:



変数の値に 5 つの特殊文字 (& ” ‘ /) が含まれる場合は、 でエスケープする必要があります。
コードをコピー コードは次のとおりです:

var txt = "


コードをコピーします コードは次のとおりです:

"; _.template(txt, {word : "H&W"}) //

H&W

JavaScript コマンドは の形式で挿入できます。以下は判決文の一例です。

コードをコピー コードは次のとおりです:

var txt = "" ""; word : "Hello World"}) // Hello World

一般的な使用法には、ループ ステートメントが含まれます。
コードをコピー コードは次のとおりです:

var list = "

巻き毛
ラリー」
テンプレート メソッドに最初のパラメーター templateString のみがあり、2 番目のパラメーターを省略した場合、関数が返され、今後この関数にデータを入力できます。

コードをコピー コードは次のとおりです:
var t1 = _.template("こんにちは !"); t1({ user: "" }) // 'こんにちは !'

データ

templateString 内のすべての変数は内部的には obj オブジェクトの属性であり、obj オブジェクトは 2 番目のパラメーター データ オブジェクトを参照します。次の 2 つのステートメントは同等です。


コードをコピー コードは次のとおりです:
_.template("こんにちは !", { ユーザー: "" }) _.template("こんにちは !", { ユーザー: "" })

obj オブジェクトの名前を変更したい場合は、3 番目のパラメータで設定する必要があります。

コードをコピー コードは次のとおりです:
_.template("タイトル: ", null, { 変数: "データ" });

テンプレートは変数を置換するときに内部で with ステートメントを使用するため、上記のアプローチはより高速に実行されます。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptの文字列文字を交換しますJavaScriptの文字列文字を交換しますMar 11, 2025 am 12:07 AM

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

独自のAjax Webアプリケーションを構築します独自のAjax Webアプリケーションを構築しますMar 09, 2025 am 12:11 AM

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか?独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか?Mar 18, 2025 pm 03:12 PM

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか?ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか?Mar 18, 2025 pm 03:14 PM

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

jQueryマトリックス効果jQueryマトリックス効果Mar 10, 2025 am 12:52 AM

マトリックスの映画効果をあなたのページにもたらしましょう!これは、有名な映画「The Matrix」に基づいたクールなJQueryプラグインです。プラグインは、映画の古典的な緑色のキャラクター効果をシミュレートし、画像を選択するだけで、プラグインはそれを数値文字で満たされたマトリックススタイルの画像に変換します。来て、それを試してみてください、それはとても面白いです! それがどのように機能するか プラグインは画像をキャンバスにロードし、ピクセルと色の値を読み取ります。 data = ctx.getimagedata(x、y、settings.greasize、settings.greasize).data プラグインは、写真の長方形の領域を巧みに読み取り、jQueryを使用して各領域の平均色を計算します。次に、使用します

ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか?ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか?Mar 18, 2025 pm 03:16 PM

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

シンプルなjQueryスライダーを構築する方法シンプルなjQueryスライダーを構築する方法Mar 11, 2025 am 12:19 AM

この記事では、jQueryライブラリを使用してシンプルな画像カルーセルを作成するように導きます。 jQuery上に構築されたBXSLiderライブラリを使用し、カルーセルをセットアップするために多くの構成オプションを提供します。 今日、絵のカルーセルはウェブサイトで必須の機能になっています - 1つの写真は千の言葉よりも優れています! 画像カルーセルを使用することを決定した後、次の質問はそれを作成する方法です。まず、高品質の高解像度の写真を収集する必要があります。 次に、HTMLとJavaScriptコードを使用して画像カルーセルを作成する必要があります。ウェブ上には、さまざまな方法でカルーセルを作成するのに役立つ多くのライブラリがあります。オープンソースBXSLiderライブラリを使用します。 BXSLiderライブラリはレスポンシブデザインをサポートしているため、このライブラリで構築されたカルーセルは任意のものに適合させることができます

Angularを使用してCSVファイルをアップロードおよびダウンロードする方法Angularを使用してCSVファイルをアップロードおよびダウンロードする方法Mar 10, 2025 am 01:01 AM

データセットは、APIモデルとさまざまなビジネスプロセスの構築に非常に不可欠です。これが、CSVのインポートとエクスポートが頻繁に必要な機能である理由です。このチュートリアルでは、Angular内でCSVファイルをダウンロードおよびインポートする方法を学びます

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境