jquery配列パッケージ使用方法共有(jquery配列エルゴード)

6908 ワード

$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を残して要素を削除します。また、フィルタ関数は文字列に設定できます。自分で調べたいです。

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と同じくらいの余分さを感じます。