« ブラウザのバックボタン/履歴への対応 | トップページ | ローカルディスクへのデータ保存 »

2007年3月24日 (土)

配列

dojo.langに含まれる配列に関する関数を説明する。

dojo.lang.isArray()は、配列かどうかをチェックする。空の配列も、trueとなる。

dojo.lang.isEmpty()で、配列を引数に渡すと、配列が空かをチェックする。空の配列は、isEmpty()ではtrueとなる。

dojo.lang.find()は、配列の中に指定したオブジェクトが何番目含まれるかを返す。以下の例では2を返す。

var foo = new Array(128, 256, 512);
dojo.lang.find(foo, 512);

dojo.lang.forEach()を使うことで、配列の全ての要素に同じ関数を適用できる。

var colors = ["red", "white", "blue"];
dojo.lang.forEach(colors, alert);

dojo.lang.map()では、配列の全ての要素に同じ関数を適用して、その結果を配列で受け取ることができる。以下の例では、2乗した値の配列 [1,4,9,16,25]を返す。

var integers = [1,2,3,4,5];
var squares = dojo.lang.map(integers, function(x){ return x*x; });

dojo.lang.every()は、配列の全ての要素に対して、指定した関数を適用した結果が全てtrueになるかどうかを返す。1つでもfalseがあったときはfalseを返す。以下の例はtrueを返す。

var integers = [1,2,3,4,5];
var result = dojo.lang.every(integers, function(x){ if (x <10) return true; return false;});

dojo.lang.some()は、配列の要素に対して指定した関数を適用して、1つでもtrueになればtrueを返す。全てfalseのときはfalseを返す。以下の例をtrueを返す。

var integers = [1,2,3,4,5];
var result = dojo.lang.some(integers, function(x){ if (x == 3) return true; return false;});

配列の比較

dojo.collections.Setには、2つの配列を比較するメソッドが提供される。

メソッド名概要
difference(arrayA, arrayB) 引数として指定した2つの配列が全て同じかどうか
intersection(arrayA, arrayB) arrayAの全ての要素がarrayBに含まれないかどうか
isSubSet(arrayA, arrayB) arrayBがarrayAの部分集合がどうか
isSuperSet(arrayA, arrayB) arrayBがarrayAを含んでいるかどうか
union(arrayA, arrayB) arrayAとarrayBを結合した配列を返す

JavaScriptの配列

参考に、JavaScriptの配列が元々持つメソッドを以下に示す。

メソッド名概要
concat(ary2) aryとary2を連結した配列を返す。引数の配列は複数指定することもできる
join('str') 引数の文字列で配列の各要素を繋げた文字列を返す。引数を省略したときはカンマ(,)で連携する
length 配列の要素数を返す
pop() 配列の最後の要素を取り除く
push(e1) 配列の最後に引数の要素を追加する。引数の要素を複数指定することもできる
reverse 逆順に並び替えた配列を返す
shift() 配列の最初の要素を削除して、その要素を返す
splice(start, end) start~endまでの要素を抜き出した配列を返す。引数のendは省略できる
sort ソートした配列を返す
toString() 文字列に変換した結果を返す
unshift(e1) 配列の最初に引数の要素を追加する。引数の要素を複数指定することもできる

« ブラウザのバックボタン/履歴への対応 | トップページ | ローカルディスクへのデータ保存 »

コメント

Dojo の情報は少ないので助かります。

ところで、dojo.lang.has の第一引数は Object ですね。たとえば、以下の例は true を返します。

var result = dojo.lang.has( { a: "A", b: "B" }, "b" );

コメントありがとうございます。修正しました。dojo.lang.hasの記述は「クラスの作成」に移しました。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/232684/5803687

この記事へのトラックバック一覧です: 配列:

« ブラウザのバックボタン/履歴への対応 | トップページ | ローカルディスクへのデータ保存 »