jqueryベースの配列の使用

Jun 29, 2017 am 10:54 AM
jquery 使用 配列

jQuery の配列処理は便利で、完全に機能します。ネイティブ JavaScript 配列 では 1 ステップで実現できない多くの関数をカプセル化します。以下は、jQuery 配列の使用方法の詳細な説明です。必要な方は参照してください

1. $.each(array, [callback]) トラバーサル [一般的に使用される]

説明: $() とは異なります。 jQuery オブジェクトを走査する each() メソッド。このメソッドは任意のオブジェクトを走査するために使用できます。 コールバック関数には 2 つのパラメータがあります。1 つ目はオブジェクトのメンバーまたは配列のインデックスで、2 つ目は対応する変数またはコンテンツです。各ループを終了する必要がある場合は、コールバック関数を返すことができます。 false、その他の戻り値は無視されます。

各トラバーサルは、通常のイベント処理では、for ループの変形ですが、for ループよりも強力です。配列では、配列のインデックスと対応する値を簡単に取得できます。例:

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

var _mozi=['墨家','墨子','墨翟','兼爱非攻','尚同尚贤']; //本文所用到的数组, 下同  
$.each(_mozi,function(key,val){  
    //回调函数有两个参数,第一个是元素索引,第二个为当前值  
    alert('_mozi数组中 ,索引 : '+key+' 对应的值为: '+val);  
});
ログイン後にコピー

ネイティブの for..in と比較すると、それぞれがより強力です。 for..in は配列を走査して対応するインデックスを返すこともできますが、値は arrName[key] を通じて取得する必要があります。

2. $.grep(array, callback, [invert]) フィルター配列 [一般的に使用]

説明: この関数は、少なくとも 2 つのパラメーターを渡します (3 番目のパラメーターは true または false)。 、フィルター関数の戻り値が反転しているため、個人的にはあまり役に立たないと思います): フィルターされる配列とフィルター関数は、要素を保持する場合は true を返し、要素を削除する場合は false を返す必要があります。さらに、フィルター関数を文字列に設定することもできます。

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

$.grep(_mozi,function(val,key){  
    //过滤函数有两个参数,第一个为当前元素,第二个为元素索引  
    if(val=='墨子'){  
        alert('数组值为 墨子 的下标是: '+key);  
    }  
});  
var _moziGt1=$.grep(_mozi,function(val,key){  
    return key>1;  
});  
alert('_mozi数组中索引值大于1的元素为: '+_moziGt1);  
var _moziLt1=$.grep(_mozi,function(val,key){  
    return key>1;  
},true);  
//此处传入了第三个可靠参数,对过滤函数中的返回值取反  
alert('_mozi数组中索引值小于等于1的元素为: '+_moziLt1);
ログイン後にコピー

3. $.map(array,[callback]) 与えられた条件に従って配列を変換します [全般]

説明: パラメータとしての変換関数が呼び出されますこの変換関数には、変換される要素を表す引数が渡され、変換された値、null (配列から項目を削除)、または元の配列に展開された値を含む配列を返すことができます。 。

これは非常に強力なメソッドですが、一般的には使用されません。特定の条件に基づいて配列要素の値を更新したり、元の値に基づいて新しいコピー要素を展開したりできます。

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

var _mapArrA=$.map(_mozi,function(val){  
    return val+'[新加]';  
});  
var _mapArrB=$.map(_mozi,function(val){  
    return val=='墨子' ? '[只给墨子加]'+val : val;  
});  
var _mapArrC=$.map(_mozi,function(val){  
    //为数组元素扩展一个新元素  
    return [val,(val+'[扩展]')];  
});  
alert('在每个元素后面加\'[新加]\'字符后的数组为: '+ _mapArrA);  
alert('只给元素 墨子 添加字符后的数组为: '+ _mapArrB);  
alert('为原数组中每个元素,扩展一个添加字符\'[新加]\'的元素,返回的数组为 '+_mapArrC);
ログイン後にコピー

4 .$.inArray(val,array) は、値が配列内に存在するかどうかを決定します [一般的に使用されます]

説明: 配列内の最初のパラメーターの位置を決定します。 0から数えます(見つからない場合は-1を返します)。

indexOf() メソッドを覚えていますか?indexOf() は文字列の最初の出現位置を返しますが、$.inArray() は配列内で渡されたパラメータの位置を返します。同様に、見つかった場合は A 値を返します。 0 以上の値が見つからない場合は -1 を返します。これで、配列内に値が存在するかどうかを簡単に判断できるようになりました。

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

var _exist=$.inArray('墨子',_mozi);  
var _inexistence=$.inArray('卫鞅',_mozi)  
if(_exist>=0){  
    alert('墨子 存在于数组_mozi中,其在数组中索引值是: '+_exist);  
}  
if(_inexistence<0){  
    alert(&#39;卫鞅 不存在于数组_mozi中!,返回值为: &#39;+_inexistence+&#39;!&#39;);  
}
ログイン後にコピー

5 .$.merge(first,second) は 2 つの配列をマージします [一般]

説明: 返された結果は、最初の配列の内容 (最初の配列の要素) を変更します。配列 その後に 2 番目の配列の要素が続きます。このメソッドは jQuery のメソッドを使用してネイティブ concat() メソッドを置き換えますが、その機能は複数の配列を同時にマージできる concat() ほど強力ではありません。

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

//原生concat()可能比它还简洁点  
_moziNew=$.merge(_mozi,[&#39;鬼谷子&#39;,&#39;商鞅&#39;,&#39;孙膑&#39;,&#39;庞涓&#39;,&#39;苏秦&#39;,&#39;张仪&#39;])  
alert(&#39;合并后新数组长度为: &#39;+_moziNew.length+&#39;. 其值为: &#39;+_moziNew);
ログイン後にコピー

6 .$.unique(array) は配列内の重複要素をフィルターします [一般的には使用されません]

説明: 配列内の重複要素を削除します。DOM 要素配列の削除のみを処理します。ただし、文字列や数値配列は処理できません。

この方法は初めて知りましたが、とても便利な方法だと思います。しかし、よく見てみると、DOM 要素のみを処理でき、その機能は 20% オフであることがわかります。そのため、あまり使われない要素として定義しましたが、少なくとも私はjQueryを使い始めてからは使っていません。

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

var _h2Arr=$.makeArray(h2obj);  
//将数组_h2Arr重复一次  
_h2Arr=$.merge(_h2Arr,_h2Arr);  
var _curLen=_h2Arr.length;  
_h2Arr=$.unique(_h2Arr);  
var _newLen=_h2Arr.length;  
alert(&#39;数组_h2Arr原长度值为: &#39;+_curLen+&#39; ,过滤后为: &#39;+_newLen  
      +&#39; .共过滤 &#39;+(_curLen-_newLen)+&#39;个重复元素&#39;)
ログイン後にコピー

7. $.makeArray(obj) 配列のようなオブジェクトを配列に変換します [一般的には使用されません]

説明: 配列のようなオブジェクトを配列のようなオブジェクトに変換します。オブジェクトには length 属性があり、そのメンバーには 0 から length-1 までのインデックスが付けられます。
これは冗長なメソッドです。全能の $ にはすでにこの関数が含まれています。 jQuery 公式サイトの説明は非常に曖昧です。実際には、配列のようなオブジェクト (getElementsByTagName で取得した要素オブジェクトのコレクションなど) を配列オブジェクトに変換します。
コードは次のとおりです:

var _makeArr=$.makeArray(h2obj);  
alert(&#39;h2元素对象集合的数据
类型转换
为: &#39;+_makeArr.constructor.name);//输出Array
ログイン後にコピー

8. $(dom).toArray() はすべての DOM 要素を配列に復元します [一般的には使用されません]

説明: jQuery コレクション内のすべての DOM 要素を配列に復元します。これは、$.makeArray と同じくらい冗長だとさえ思います。コードは次のとおりです:

var _toArr=$(&#39;h2&#39;).toArray();  
alert(&#39;h2元素集合恢复后的
数据类型
是: &#39;+_toArr.constructor.name);
ログイン後にコピー

以上がjqueryベースの配列の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

BTCC チュートリアル: BTCC 取引所で MetaMask ウォレットをバインドして使用する方法は? BTCC チュートリアル: BTCC 取引所で MetaMask ウォレットをバインドして使用する方法は? Apr 26, 2024 am 09:40 AM

MetaMask (中国語ではリトル フォックス ウォレットとも呼ばれます) は、無料で評判の高い暗号化ウォレット ソフトウェアです。現在、BTCC は MetaMask ウォレットへのバインドをサポートしており、バインド後は MetaMask ウォレットを使用してすぐにログイン、値の保存、コインの購入などが可能になり、初回バインドで 20 USDT のトライアル ボーナスも獲得できます。 BTCCMetaMask ウォレットのチュートリアルでは、MetaMask の登録方法と使用方法、および BTCC で Little Fox ウォレットをバインドして使用する方法を詳しく紹介します。メタマスクウォレットとは何ですか? 3,000 万人を超えるユーザーを抱える MetaMask Little Fox ウォレットは、現在最も人気のある暗号通貨ウォレットの 1 つです。無料で使用でき、拡張機能としてネットワーク上にインストールできます。

foreach ループを使用して PHP 配列から重複要素を削除するにはどうすればよいですか? foreach ループを使用して PHP 配列から重複要素を削除するにはどうすればよいですか? Apr 27, 2024 am 11:33 AM

foreach ループを使用して PHP 配列から重複要素を削除する方法は次のとおりです。配列を走査し、要素がすでに存在し、現在の位置が最初に出現しない場合は、要素を削除します。たとえば、データベース クエリの結果に重複レコードがある場合、このメソッドを使用してそれらを削除し、重複レコードのない結果を取得できます。

PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する May 01, 2024 pm 12:30 PM

PHP で配列をディープ コピーする方法には、json_decode と json_encode を使用した JSON エンコードとデコードが含まれます。 array_map と clone を使用して、キーと値のディープ コピーを作成します。シリアル化と逆シリアル化には、serialize と unserialize を使用します。

PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 May 03, 2024 pm 09:03 PM

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

PHP 配列のディープ コピーのベスト プラクティス: 効率的な方法を発見する PHP 配列のディープ コピーのベスト プラクティス: 効率的な方法を発見する Apr 30, 2024 pm 03:42 PM

PHP で配列のディープ コピーを実行するためのベスト プラクティスは、 json_decode(json_encode($arr)) を使用して配列を JSON 文字列に変換し、それから配列に戻すことです。 unserialize(serialize($arr)) を使用して配列を文字列にシリアル化し、それを新しい配列に逆シリアル化します。 RecursiveIteratorIterator を使用して、多次元配列を再帰的に走査します。

PHP 配列の多次元ソートの実践: 単純なシナリオから複雑なシナリオまで PHP 配列の多次元ソートの実践: 単純なシナリオから複雑なシナリオまで Apr 29, 2024 pm 09:12 PM

多次元配列のソートは、単一列のソートとネストされたソートに分類できます。単一列のソートでは、array_multisort() 関数を使用して列ごとにソートできますが、ネストされたソートでは、配列を走査してソートするための再帰関数が必要です。具体的な例としては、製品名による並べ替えや、売上数量や価格による化合物の並べ替えなどがあります。

データソートにおけるPHP配列グループ化機能の応用 データソートにおけるPHP配列グループ化機能の応用 May 04, 2024 pm 01:03 PM

PHP の array_group_by 関数は、キーまたはクロージャ関数に基づいて配列内の要素をグループ化し、キーがグループ名、値がグループに属する要素の配列である連想配列を返すことができます。

Bitget Launchpool とは何ですか? Bitget Launchpool の使用方法? Bitget Launchpool とは何ですか? Bitget Launchpool の使用方法? Jun 07, 2024 pm 12:06 PM

BitgetLaunchpool は、すべての暗号通貨愛好家向けに設計された動的プラットフォームです。 BitgetLaunchpool はそのユニークな製品で際立っています。ここでは、トークンを賭けて、エアドロップ、高額な報酬、初期参加者限定の寛大な賞金プールなど、より多くの報酬のロックを解除できます。 BitgetLaunchpool とは何ですか? BitgetLaunchpool は、ユーザーフレンドリーな利用規約でトークンをステークして獲得できる暗号通貨プラットフォームです。 Launchpool に BGB またはその他のトークンを投資することで、ユーザーは無料のエアドロップや収益を受け取り、寛大なボーナス プールに参加する機会が得られます。質入れられた資産からの収入は T+1 時間以内に計算され、報酬は以下に基づいて計算されます。

See all articles