jquery配列パッケージ使用方法共有(jquery配列エルゴード)
$each(array、[calback])遍歴
jQueryオブジェクトの例とは異なる$each()メソッドは、任意のオブジェクトを例に通して使用できます。フィードバック関数は、2つのパラメータを持っています。最初は対象のメンバーまたは配列のインデックス、2番目は対応変数または内容です。eachループを終了すると、フィードバック関数をfalseに戻すことができます。他の戻り値は無視されます。
eachは遍歴して、よく知らないと信じています。普通のイベント処理では、for循環の変形体ですが、for循環よりも強いです。配列の中で、配列インデックスと対応する値を簡単に攻略できます。例:
使用方法は以下の通りです。
もう一つのテストプログラム:[/code] var fuit=''アップル'、'バナナ'、'オレンジ'、'メロン'、'マンゴー'; //オリジナルgetElementsByTagNameでh 2要素のオブジェクトセットを取得します。 var h 2 obj=document.getElements ByTagName('h 2') //$.each()は配列を巡回します $('input腩js.each').click(function(){ $.each(fuit,function(key,val){ //コールバック関数には2つのパラメータがあります。最初は要素索引、2番目は現在の値です。 alert('fuit配列では、索引:'+key+'に対応する値は'+val); }); });
オリジナルのfor.inに対して、eachがより強くなります。for.inも配列を巡回してインデックスに対応しますが、値はarrName[key]で取得する必要があります。
$grep(array、calback、[invert])フィルタリング
フィルタ関数を使って配列要素をフィルタリングします。この関数は少なくとも2つのパラメータを伝達します。(3番目のパラメータはtrueまたはfalseで、フィルタ関数に対して値が逆になります。個人的にはあまり役に立たないと思います。):フィルタリング配列とフィルタ関数は要素またはfalseを残して要素を削除します。また、フィルタ関数は文字列に設定できます。自分で調べたいです。
パラメータとしての変換関数は、各配列要素に呼び出され、変換された要素をパラメータとして伝達します。変換関数は、変換された値、null(削除配列中の項目)または値を含む配列を返して、元の配列に拡張します。これは非常に強力な方法ですが、一般的ではありません。特定の条件に応じて、配列要素値を更新したり、元の値に基づいて新しいレプリカ要素を拡張したりします。
最初のパラメータの配列内の位置を決定し、0から数え始めます。(見つからなかったら-1に戻ります。indexOf()方法を覚えていますか?indexOfは文字列の最初の出現位置を返します。また、$inarry()は着信パラメータの配列中の位置を返します。同じように、見つけたら、0以上の値を返します。見つけられなかったら-1を返します。今はどうやって使うか分かります。ある値が配列中にあるかどうかを判断すると、簡単になります。
戻ってきた結果は、最初の配列の内容が修正されます。最初の配列の要素の後ろには、第2の配列の要素が付いています。この方法は、jQueryの方法で、オリジナルのconcat()の代わりに、機能は強くありません。concat()は複数の配列を同時に結合することができます。
$uniqueフィルタ配列中の重複要素
配列中の重複要素を削除します。DOM要素配列を削除するだけで、文字列や数字配列を処理できません。この方法を初めて見ました。これはとても便利な方法だと思います。繰り返しフィルタできます。ハ、完璧です。しかし、よく見ると、DOM元素だけを処理します。機能は8%折れました。だから、あまり使われない要素と定義しました。少なくとも、私はjQueryを使って以来使ったことがありません。
クラスの配列オブジェクトを配列オブジェクトに変換します。クラスの配列オブジェクトにはlength属性があります。そのメンバーインデックスは0からlength-1までです。これは余分な方法です。何でもできるドルはもともとこの機能が含まれています。jQuery公式サイトで説明した非常に曖昧です。実は、ある種類の配列オブジェクト(例えばgetElements ByTagNameで取得した要素セット)を行列オブジェクトに変換します。
まず、クラスのオブジェクトは何ですか?jQuery公式サイトではdivs=getElementsByTag('div')を例に挙げていますが、このdivsにはlengthのような配列のいくつかの方法があります。indexによって元素を取得するなどして、$makeArry(divs)を通じて配列に変換すると、配列の他の機能を使うことができます。
jQueryの集合の中のDOM元素を一つの配列に回復します。あまり使われていない方法ですが、個人的には$makeArayと同じくらいの余分さを感じます。
jQueryオブジェクトの例とは異なる$each()メソッドは、任意のオブジェクトを例に通して使用できます。フィードバック関数は、2つのパラメータを持っています。最初は対象のメンバーまたは配列のインデックス、2番目は対応変数または内容です。eachループを終了すると、フィードバック関数をfalseに戻すことができます。他の戻り値は無視されます。
eachは遍歴して、よく知らないと信じています。普通のイベント処理では、for循環の変形体ですが、for循環よりも強いです。配列の中で、配列インデックスと対応する値を簡単に攻略できます。例:
使用方法は以下の通りです。
もう一つのテストプログラム:[/code] var fuit=''アップル'、'バナナ'、'オレンジ'、'メロン'、'マンゴー'; //オリジナルgetElementsByTagNameでh 2要素のオブジェクトセットを取得します。 var h 2 obj=document.getElements ByTagName('h 2') //$.each()は配列を巡回します $('input腩js.each').click(function(){ $.each(fuit,function(key,val){ //コールバック関数には2つのパラメータがあります。最初は要素索引、2番目は現在の値です。 alert('fuit配列では、索引:'+key+'に対応する値は'+val); }); });
オリジナルのfor.inに対して、eachがより強くなります。for.inも配列を巡回してインデックスに対応しますが、値はarrName[key]で取得する必要があります。
$grep(array、calback、[invert])フィルタリング
フィルタ関数を使って配列要素をフィルタリングします。この関数は少なくとも2つのパラメータを伝達します。(3番目のパラメータはtrueまたはfalseで、フィルタ関数に対して値が逆になります。個人的にはあまり役に立たないと思います。):フィルタリング配列とフィルタ関数は要素またはfalseを残して要素を削除します。また、フィルタ関数は文字列に設定できます。自分で調べたいです。
var arr = ['javascript', 'php', 'java', 'c++', 'c#', 'perl', 'vb', 'html', 'css', 'objective-c'];
$.each(arr, function(key, val) {
// firebug console
console.log('index in arr:' + key + ", corresponding value:" + val);
//
// return false;
});
もう一つのテストプログラム:
v[code]ar temp = [];
temp = $.grep(arr, function(val, key) {
if(val.indexOf('c') != -1)
return true;
// [invert] false, $.grep true
// [invert] true, $.grep false
}, false);
console.dir(temp);
$map(array、[calback])は、与えられた条件で配列を変換します。パラメータとしての変換関数は、各配列要素に呼び出され、変換された要素をパラメータとして伝達します。変換関数は、変換された値、null(削除配列中の項目)または値を含む配列を返して、元の配列に拡張します。これは非常に強力な方法ですが、一般的ではありません。特定の条件に応じて、配列要素値を更新したり、元の値に基づいて新しいレプリカ要素を拡張したりします。
//$.grep()
$('input#js_grep').click(function(){
$.grep(fruit,function(val,key){
// , ,
if(val==' '){
alert(' : '+key);
}
});
var _moziGt1=$.grep(fruit,function(val,key){
return key>1;
});
alert('fruit 1 : '+_moziGt1);
var _moziLt1=$.grep(fruit,function(val,key){
return key>1;
},true);
// ,
alert('fruit 1 : '+_moziLt1);
});
もう一つのテストプログラム:
//1.6
temp = $.map(arr, function(val, key) {
// null, 1
if(val === 'vb') return null;
return val;
});
console.dir(temp);
//1.6 json object
var obj = {key1: 'val1', key2: 'val2', key3: 'val3'};
temp = $.map(obj, function(val, key) {
return val;
});
console.dir(temp);
$inAray(val,array)判定値が配列内に存在するかどうか最初のパラメータの配列内の位置を決定し、0から数え始めます。(見つからなかったら-1に戻ります。indexOf()方法を覚えていますか?indexOfは文字列の最初の出現位置を返します。また、$inarry()は着信パラメータの配列中の位置を返します。同じように、見つけたら、0以上の値を返します。見つけられなかったら-1を返します。今はどうやって使うか分かります。ある値が配列中にあるかどうかを判断すると、簡単になります。
//$.map()
$('input#js_map').click(function(){
var _mapArrA=$.map(fruit,function(val){
return val+'[ ]';
});
var _mapArrB=$.map(fruit,function(val){
return val==' ' ? '[ ]'+val : val;
});
var _mapArrC=$.map(fruit,function(val){
//
return [val,(val+'[ ]')];
});
alert(' \'[ ]\' : '+ _mapArrA);
alert(' : '+ _mapArrB);
alert(' , \'[ ]\' , '+_mapArrC);
});
$merge(first、second)は二つの配列を合併する。戻ってきた結果は、最初の配列の内容が修正されます。最初の配列の要素の後ろには、第2の配列の要素が付いています。この方法は、jQueryの方法で、オリジナルのconcat()の代わりに、機能は強くありません。concat()は複数の配列を同時に結合することができます。
// ,0 , -1
console.log($.inArray('javascript', arr));
:
[code]
//$.inArray , -1,
$('input#js_inarray').click(function(){
var _exist=$.inArray(' ',fruit);
var _inexistence=$.inArray(' ',fruit)
if(_exist>=0){
alert(' fruit , : '+_exist);
}
if(_inexistence< 0){
alert(' fruit !, : '+_inexistence+'!');
}
});
テストプログラム$uniqueフィルタ配列中の重複要素
配列中の重複要素を削除します。DOM要素配列を削除するだけで、文字列や数字配列を処理できません。この方法を初めて見ました。これはとても便利な方法だと思います。繰り返しフィルタできます。ハ、完璧です。しかし、よく見ると、DOM元素だけを処理します。機能は8%折れました。だから、あまり使われない要素と定義しました。少なくとも、私はjQueryを使って以来使ったことがありません。
var frontEnd = ['javascript', 'css', 'html'],
backEnd = ['java', 'php', 'c++'];
// , frontEnd
temp = $.merge(frontEnd, backEnd);
console.dir(temp);
console.dir(frontEnd);
//
// $.merge($.merge([], frontEnd), backEnd);
試験手順:
//$.merge()
$('input#js_merge').click(function(){
// concat()
fruitNew=$.merge(fruit,[' ',' ',' ',' ',' ',' '])
alert(' : '+fruitNew.length+'. : '+fruitNew);
});
$makeAray(obj)は、クラスの配列オブジェクトを配列に変換します。クラスの配列オブジェクトを配列オブジェクトに変換します。クラスの配列オブジェクトにはlength属性があります。そのメンバーインデックスは0からlength-1までです。これは余分な方法です。何でもできるドルはもともとこの機能が含まれています。jQuery公式サイトで説明した非常に曖昧です。実は、ある種類の配列オブジェクト(例えばgetElements ByTagNameで取得した要素セット)を行列オブジェクトに変換します。
まず、クラスのオブジェクトは何ですか?jQuery公式サイトではdivs=getElementsByTag('div')を例に挙げていますが、このdivsにはlengthのような配列のいくつかの方法があります。indexによって元素を取得するなどして、$makeArry(divs)を通じて配列に変換すると、配列の他の機能を使うことができます。
<div>blahblahblah....</div>
<div></div>
<div class="dup"></div>
<div class="dup"></div>
<div class="dup"></div>
<div></div>
// $.unique DOM , DOM , (String Number)
// DOM , jQuery
var divs = $('div').get();
// class dup div
divs = divs.concat($('div.dup').get());
console.log("before unique:" + divs.length);
divs = $.unique(divs);
console.log("after unique:" + divs.length);
ドル(dom).toAray()は、すべてのDOM要素を配列に復元します。jQueryの集合の中のDOM元素を一つの配列に回復します。あまり使われていない方法ですが、個人的には$makeArayと同じくらいの余分さを感じます。