ホーム » jQuery » jQuery - ユーティリティ - 配列とオブジェクト
配列のそれぞれの要素の値とインデックス、あるいはオブジェクトのそれぞれの属性名と値を引数として、ファンクションを呼び出す。
次の例では 'one', 'two', 'three' という文字列が要素である配列 arr と、属性名が One, Two, Three であり、それらの値がそれぞれ 10, 20, 30 であるオブジェクト obj に対して each を適用して、どのような値が引数に渡されているか確認しています。
var arr = [ 'one', 'two', 'three' ]; var obj = { One: 10, Two: 20, Three: 30 }; $.each ( arr, function ( a, b ) { alert( a + ' - ' + b ); }); $.each ( obj, function ( a, b ) { alert( a + ' - ' + b ); });
第一引数で指定したオブジェクトを、第二引数のオブジェクトの内容で更新します。
存在する属性は値を書き換え、存在しない属性は追加されます。また、子オブジェクトの値も更新されます。
var opt1 = { Param1: 111 }; var opt2 = { Param1: 222 }; var o1 = { FirstName: 'Keisuke', LastName: 'Oyama', Param: opt1 }; var o2 = { Age: 36, City: "Los Angeles", FirstName: 'Keith', Param: opt2 }; alert( 'o1 = ' + JSON.stringify( o1 ) ); alert( 'o2 = ' + JSON.stringify( o2 ) ); $.extend ( o1, o2 ); alert( 'o1 = ' + JSON.stringify( o1 ) ); alert( 'o2 = ' + JSON.stringify( o2 ) );
配列を渡し、その中身を評価します。フィルタ関数の条件を満たす要素のみが結果として返ります。
var arr = [ 2, 4, 6, 8 ]; var ret; ret = $.grep ( arr, function( val, indx ) { return val > 5; }); alert( JSON.stringify( ret ) );
未テスト
ある配列の要素から他の配列を作る。
var arr = [ 1, 2, 3 ]; var ret; ret = $.map ( arr, function ( n ) { return 100 * n; }); alert( JSON.stringify( ret ) );
配列の中から指定した値の要素のインデックスを返す。見つからないときは -1 を返す。
var arr = [ 'Los Angeles', 'Honolulu', 'Dallas' ]; var ret; ret = $.inArray( 'Dallas', arr ); alert( ret ); ret = $.inArray( 'Irving', arr ); alert( ret );
二つの配列の要素をマージする。
var a1 = [ 1, 3, 5 ]; var a2 = [ 2, 4, 6 ]; var ret; ret = $.merge( a1, a2 ); alert( JSON.stringify( ret ) );
DOM 要素の配列の中から、重複した要素を削除する。これは配列には有効ではなく、あくまで DOM 要素そのものに対する操作であることに注意 (値でもない)。
var arr = [ 1, 1, 2, 3, 3, 5 ]; var ret; var divs; // 配列には有効ではない ret = $.unique( arr ); alert( JSON.stringify( ret ) ); // DOM Element divs = $( 'div' ).get(); divs = divs.concat ( $( 'div' ).get() ); alert( divs.length ); divs = $.unique( divs ); alert( divs.length );