Jqueryの配列に対する操作テクニックの整理

4165 ワード

1.$.each(array,calback)は、jQueryオブジェクトの例とは異なり、.each()メソッドを使用して、どのオブジェクトにも例えられます。(配列だけではありません。)回転関数は、2つのパラメータを持っています。最初は対象のメンバーまたは配列のインデックスで、2番目は変数または内容に対応しています。eachループを終了すると、フィードバック関数が返されます。他の戻り値は無視されます。each遍歴は、よく知られていないと信じています。通常のイベント処理では、forループの変形体ですが、forループよりも強いです。配列内では、簡単に配列インデックスと対応する値をとることができます。例:
 
var _mozi=[' ',' ',' ',' ',' ']; // ,
$.each(_mozi,function(key,val){
// , ,
alert('_mozi , : '+key+' : '+val);
});
は、元のfor.inに対して、eachより強い点です。for.inも配列を巡回し、インデックスに対応します。しかし、値はarrName[key]で取得する必要があります。2.$.grep(array,calback,[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,calback)は、パラメータとしての変換関数が各配列要素に呼び出され、変換された要素をパラメータとして伝えられます。変換関数は、変換された値、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);
。$inAray(val,array)判断値が行列内に存在するかどうかは、「常用」と解釈します。最初のパラメータの配列内の位置を決定します。0から数え始めます。(見つからなかったら-1に戻ります。indexOf()方法を覚えていますか?indexOfは文字列の最初の出現位置を返します。また、$inarry()は着信パラメータの配列中の位置を返します。同じように、見つけられたら、0以上の値を返します。見つけられなかったら-1に戻ります。今はどうやって使うか分かります。ある値が配列中にあるかどうかを判断すると、簡単になります。second)は、2つの配列を統合して説明します。戻りの結果、最初の配列の内容が修正されます。最初の配列の要素の後に、2番目の配列の要素が付いています。この方法は、jQueryの方法で元のconcat()の代わりになりますが、機能はconcat()ほど強くないです。concat()は、複数の配列を同時に結合することができます。
 
var _exist=$.inArray(' ',_mozi);
var _inexistence=$.inArray(' ',_mozi)
if(_exist>=0){
alert(' _mozi , : '+_exist);
}
if(_inexistence<0){
alert(' _mozi !, : '+_inexistence+'!');
}
6.$.uniqueフィルタリング配列における重複要素[一般的ではありません]の説明:配列中の重複要素を削除します。DOM要素配列だけを削除して、文字列や数字配列を処理することができません。この方法を初めて見ました。これは便利な方法です。フィルタリングの繰り返しが、完璧です。しかし、よく見てください。DOM元素のみを処理します。機能は8%折れました。だから、私は一般的ではない要素として定義しました。少なくともjQueryを使って以来使ったことがありません。
 
// concat()
_moziNew=$.merge(_mozi,[' ',' ',' ',' ',' ',' '])
alert(' : '+_moziNew.length+'. : '+_moziNew);
。$makeAray(obj)は、クラスの配列オブジェクトを行列に変換します。説明:クラスのオブジェクトを数組のオブジェクトに変換します。クラスのオブジェクトはlength属性があります。そのメンバーは0からlength-1までインデックスしています。これは余分な方法です。できないものはないです。もともとはこの機能が含まれています。jQuery公式サイトで説明するのはとても曖昧です。実は、これは、あるクラスの配列オブジェクト(例えば、getElementsByTagNameで取得された要素オブジェクトのセット)を行列オブジェクトに変換します。
 
var _h2Arr=$.makeArray(h2obj);
// _h2Arr
_h2Arr=$.merge(_h2Arr,_h2Arr);
var _curLen=_h2Arr.length;
_h2Arr=$.unique(_h2Arr);
var _newLen=_h2Arr.length;
alert(' _h2Arr : '+_curLen+' , : '+_newLen
+' . '+(_curLen-_newLen)+' ')
。ドル(dom)。toAray()は、すべてのDOM要素を行列に復元します。あまり使われていない方法ですが、個人的には$makeArayと同じくらいの余分さを感じます。