Dojo拡張javascriptコアライブラリ-配列方法(Aray)
Javascript 1.6はいくつかの新しい配列方法を定義していますが、すべてのブラウザがJavascript 1.6を実現したわけではありません.Dojoは実現していないブラウザに拡張を提供してそれらを実現します.
--dojo.indexOfは、マッチング要素が最初に現れた位置を返します.戻り値が見つかりませんでした.
--dojo.lastIndexOfは、配列中の最後の要素にマッチする位置を返します.戻り値が見つかりませんでした.
--dojo.everyテストは、配列中のすべての要素がテスト関数をtrueに返させるかどうかを確認します.
--dojo.someテスト配列に要素が存在するかどうかをテストします.テスト関数はtrueに戻ります.
--dojo.filterは新しい配列を返します.その要素は元の配列の中でfilter関数を通る要素です.
--dojo.map 入力関数の戻り値を元の配列の各要素で呼び出す新しい配列を作成します.
--dojo.forEachは、配列の各要素を関数に伝達します.
前の2つの関数を除いて、他のすべての関数は同じ関数署名があります.例えば、dojo.every(array、func、context).arrayは操作する配列で、Fncは各行列項目に適用する関数で、最後のcontextはfuncを実行するコンテキストで、選択可能なパラメータです.
コンテキストパラメータが入ってきたら、コールバック関数が得られます.dojo.hitch(context,func)で取得できます.
例:
--item:現在動作中の配列要素.
--index:現在動作中の配列要素の索引
--array:配列オブジェクト
例:
--dojo.indexOfは、マッチング要素が最初に現れた位置を返します.戻り値が見つかりませんでした.
--dojo.lastIndexOfは、配列中の最後の要素にマッチする位置を返します.戻り値が見つかりませんでした.
--dojo.everyテストは、配列中のすべての要素がテスト関数をtrueに返させるかどうかを確認します.
--dojo.someテスト配列に要素が存在するかどうかをテストします.テスト関数はtrueに戻ります.
--dojo.filterは新しい配列を返します.その要素は元の配列の中でfilter関数を通る要素です.
--dojo.map 入力関数の戻り値を元の配列の各要素で呼び出す新しい配列を作成します.
--dojo.forEachは、配列の各要素を関数に伝達します.
前の2つの関数を除いて、他のすべての関数は同じ関数署名があります.例えば、dojo.every(array、func、context).arrayは操作する配列で、Fncは各行列項目に適用する関数で、最後のcontextはfuncを実行するコンテキストで、選択可能なパラメータです.
コンテキストパラメータが入ってきたら、コールバック関数が得られます.dojo.hitch(context,func)で取得できます.
例:
var arr = [1, 2, 3];
var doubleArray = dojo.map(arr, function(x) { return x *= 2 });
dojo.forEach(doubleArray, function(x) { console.log(x) });
// Output: 2, 4, 6
二つ目のパラメータ関数には面白い使い方があります.二つ目のパラメータが文字列の場合、item&index&arrayの3つの文字列は特殊な意味があります.--item:現在動作中の配列要素.
--index:現在動作中の配列要素の索引
--array:配列オブジェクト
例:
var arr = [1, 2, 3];
var doubleArray = dojo.map(arr, "return item * 2");
dojo.forEach(doubleArray, "console.log(index + ' = ' + item)");
// Output:
// 0 = 2
// 1 = 4
// 2 = 6
(アクセス https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array 詳細はJavascript 1.6 Arayをご覧ください.