Native: Array

一連の配列メソッドです。

参考情報:

Arrayメソッド: each

配列の各要素に対して関数を呼び出します。

構文:

myarray.each(fn[, bind]);

引数:

  1. fn - (関数) 配列の各要素に対して実行される関数。この関数にはその要素自身と配列内でのインデックスが渡されます。
  2. bind - (オブジェクト, オプション) 関数内において'this'として参照したいオブジェクト。詳しくは関数:bindを参照のこと。

引数: fn

構文
fn(item, index, array)
引数:
  1. item - (いろいろ) 配列内における現在の要素。
  2. index - () 配列内における現在の要素のインデックス。
  3. array - (配列) 実際の配列.

例:

//"0 = apple", "1 = banana", という具合にアラート:
['apple', 'banana', 'lemon'].each(array(item, index){

    alert(index + " = " + item);
}); //オプションの第2引数であるbindは使用していません。

参考情報:

注意点:

  • このメソッドはMDC 配列:forEachをネイティブにサポートしていないブラウザでだけ利用可能です。

Arrayメソッド: every

配列のすべての要素が提供されたテスト関数の条件を満たしていれば、trueを返します。 このメソッドは配列:every をネイティブにサポートしていないブラウザでだけ有効になります。

構文:

var allPassed = myarray.every(fn[, bind]);

引数:

  1. fn - (関数) 各要素をテストするための関数。
  2. bind - (オブジェクト, オプション) 関数内で'this'として指定したいオブジェクト。より詳しくは関数:bindを参照のこと。

引数: fn

構文:
fn(item, index, array)
引数:
  1. item - (いろいろ) 配列内における現在の要素。
  2. index - () 配列内における現在の要素のインデックス。
  3. array - (配列) 実際の配列.

戻り値:

  • (真偽値) 配列内のすべての要素が与えられたテスト関数の条件を満たすならばtrue。それ以外はfalseを返す。

例:

var areAllBigEnough = [10, 4, 25, 100].every(function(item, index){

    return item > 20;
}); //areAllBigEnough = false

参考情報:

Arrayメソッド: filter

ある配列の要素に対してフィルター関数を適用し、trueを返した要素からなる新しい配列を作成します。 このメソッドは配列:filterをネイティブにサポートしないブラウザでだけ有効です。

構文:

var filteredarray = myarray.filter(fn[, bind]);

引数:

  1. fn - (関数) 配列の各要素をテストする関数。この関数には要素それ自身と要素の配列内におけるインデックスが渡されます。
  2. bind - (オブジェクト, オプション) 関数内で'this'として参照したいオブジェクト。詳しくは関数:bindを参照のこと。

引数: fn

構文:
fn(item, index, array)
引数:
  1. item - (いろいろ) 配列における現在の要素。
  2. index - () 現在の要素の配列内でのインデックス。
  3. array- (配列) 実際の配列.

戻り値:

  • (配列) 新たにフィルタリングされた配列。

例:

var biggerThanTwenty = [10, 3, 25, 100].filter(array(item, index){

    return item > 20;
}); //biggerThanTwenty = [25, 100]

参考情報:

Arrayメソッド: clean

ある配列から、定義済みの要素 (nullやundefinedではない)のみからなる新しい配列を作成します。

構文:

var cleanedarray= myarray.clean();

戻り値:

  • (配列) フィルタリングされた新しい配列.

例:

var myarray = [null, 1, 0, true, false, "foo", undefined, ""];
myarray.clean() // 戻り値: [1, 0, true, false, "foo", ""]

Arrayメソッド: indexOf

特定の値に等しい要素がその配列内で一番はじめに出現するインデックスを返し、見つからなかった場合は-1を返します。 このメソッドは配列:indexOfをネイティブにサポートしないブラウザでのみ有効です。

構文:

var index = myarray.indexOf(item[, from]);

戻り値:

  • () 特定の値に等しい、配列内で一番はじめの要素のインデックス。見つからなかったら-1を返します。

引数:

  1. item - (オブジェクト) 配列内で検索される要素。
  2. from - (, オプション: 初期値0) 検索を開始する配列のインデックス。

例:

['apple', 'lemon', 'banana'].indexOf('lemon'); //戻り値 1

['apple', 'lemon'].indexOf('banana'); //戻り値 -1

参考情報:

Arrayメソッド: map

配列内のすべての要素に対して渡された関数を実行し、その戻り値からなる新しい配列を作成します。 このメソッドは配列:mapをネイティブにサポートしていないブラウザでのみ有効です。

構文:

var mappedarray = myarray.map(fn[, bind]);

引数:

  1. fn - (関数) 新しい配列へ要素を提供するために現在の配列の要素に対して実行するための関数。
  2. bind - (オブジェクト, オプション) 関数内で'this'として参照したいオブジェクト。詳しくは関数:bindを参照のこと。

引数: fn

構文:
fn(item, index, array)
引数:
  1. item - (いろいろ) 配列内の現在の要素。
  2. index - () 現在の要素の配列内のインデックス。
  3. array - (配列) 実際の配列。

戻り値:

  • (配列) マッピングされた新しい配列。

例:

var timesTwo = [1, 2, 3].map(array(item, index){

    return item * 2;
}); //timesTwo = [2, 4, 6];

参考情報:

Arrayメソッド: some

配列内の少なくとも一つの要素が、テスト関数の条件を満たすとき、trueを返します。 このメソッドは配列:someをネイティブにサポートしないブラウザに対してのみ提供されます。

構文:

var somePassed = myarray.some(fn[, bind]);

戻り値:

  • (真偽値) 配列内の要素のうち、少なくとも一つがテスト関数の求める要件を満たせばtrue。それ以外はfalseを返す。

引数:

  1. fn - (関数) 各要素に対してテストを行う関数。この関数には要素それ自身と配列内でのインデックスが渡されます。
  2. bind - (オブジェクト, オプション) 関数内で'this'として参照したいオブジェクト。詳細は関数:bindを参照のこと。

引数: fn

構文:
fn(item, index, array)
引数:
  1. item - (いろいろ) 配列内における現在の要素。
  2. index - () 現在の要素の配列内におけるインデックス。
  3. array - (配列) 実際の配列。

例:

var isAnyBigEnough = [10, 4, 25, 100].some(array(item, index){

    return item > 20;
}); //isAnyBigEnough = true

参考情報:

Arrayメソッド: associate

配列を元に、渡されたキーワードと配列の現在の要素をキー-値のペアにしたオブジェクトを作成します。

構文:

var associated = myarray.associate(obj);

引数:

  1. obj - (配列) この要素が新たに生成されるオブジェクトのキーになります。

戻り値:

  • (オブジェクト) あらたに作成されたオブジェクト.

例:

var animals = ['Cow', 'Pig', 'Dog', 'Cat'];

var sounds = ['Moo', 'Oink', 'Woof', 'Miao'];
sounds.associate(animals);

//戻り値: {'Cow': 'Moo', 'Pig': 'Oink', 'Dog': 'Woof', 'Cat': 'Miao'}

値を割り当てるためのキー-関数ペアを持つオブジェクトを受け取ります。

構文:

var result = array.link(array, object);

引数:

  1. object - (オブジェクト) キー-関数のペアを持つオブジェクトで、異なるキーを持つ値を結びつけるテンプレートとなります。

戻り値:

  • (オブジェクト) 新たに紐づけられたオブジェクト.

例:

var el = document.createElement('div');
var arr2 = [100, 'Hello', {foo: 'bar'}, el, false];
arr2.link({myNumber: Number.type, myElement: Element.type, myobject: object.type, mystring: string.type, myboolean: $defined});

//戻り値: {myNumber: 100, myElement: el, myobject: {foo: 'bar'}, mystring: 'Hello', myboolean: false}

Arrayメソッド: contains

配列が任意の要素を含んでいるかテストします。

構文:

var inarray = myarray.contains(item[, from]);

引数:

  1. item - (オブジェクト) 配列内で検索したい要素。
  2. from - (, オプション: 初期値0) 配列内で検索を始める位置。

戻り値:

  • (真偽値) 配列が特定の要素を含んでいたらtrue。それ以外はfalseを返します。

例:

["a","b","c"].contains("a"); //trueを返す

["a","b","c"].contains("d"); //falseを返す

参考情報:

Arrayメソッド: extend

配列にもう一つの配列の要素をすべて含めて拡張します。

構文:

myarray.extend(array);

引数:

  1. array - (配列) この配列に対して、その要素を含めたい配列。

戻り値:

  • (配列) 拡張されたこの配列。

例:

var animals = ['Cow', 'Pig', 'Dog'];
animals.extend(['Cat', 'Dog']); //animals = ['Cow', 'Pig', 'Dog', 'Cat', 'Dog'];

Arrayメソッド: getLast

配列から最後の要素を取得して返します。

構文:

myarray.getLast();

戻り値:

  • (いろいろ) この配列の最後の要素。
  • (null) この配列が空っぽならばnullを返します。

例:

['Cow', 'Pig', 'Dog', 'Cat'].getLast(); //戻り値: 'Cat'

Arrayメソッド: getRandom

配列からランダムな要素を返します。

構文:

myarray.getRandom();

戻り値:

  • (いろいろ) 配列からランダムに取り出された要素。この配列が空ならば、nullを返します。

例:

['Cow', 'Pig', 'Dog', 'Cat'].getRandom(); //要素の中から任意のものを返します。

Arrayメソッド: include

配列に要素を渡し、配列内に同じ要素が存在しなければ追加します。(オブジェクトのタイプを重視します)

構文:

myarray.include(item);

引数:

  1. item - (オブジェクト) 配列に追加したい要素。

戻り値:

  • (配列) 新しい要素が追加された配列。

例:

['Cow', 'Pig', 'Dog'].include('Cat'); //戻り値: ['Cow', 'Pig', 'Dog', 'Cat']

['Cow', 'Pig', 'Dog'].include('Dog'); //戻り値: ['Cow', 'Pig', 'Dog']

Arrayメソッド: combine

ある配列に別の配列の要素を追加します。オブジェクトの型を重視し、重複は許可しません。

構文:

myarray.combine(function);

引数:

  1. array- (配列) 元の配列に追加したい要素を持つ配列。

戻り値:

  • (配列) 新しい要素を追加された配列。

例:

var animals = ['Cow', 'Pig', 'Dog'];
animals.combine(['Cat', 'Dog']); //animals = ['Cow', 'Pig', 'Dog', 'Cat'];

Arrayメソッド: erase

配列から該当する要素を削除します。

構文:

myarray.erase(item);

引数:

  1. item - (オブジェクト) 配列内で検索したい要素。

戻り値:

  • (配列) 該当する要素を取り除かれた配列。

例:

['Cow', 'Pig', 'Dog', 'Cat', 'Dog'].erase('Dog') //returns ['Cow', 'Pig', 'Cat']

['Cow', 'Pig', 'Dog'].erase('Cat') //戻り値: ['Cow', 'Pig', 'Dog']

Arrayメソッド: empty

配列を空っぽにします。

構文:

myarray.empty();

戻り値:

  • (配列) 空になった配列

例:

var myarray= ['old', 'data'];
myarray.empty(); //myarrayは []になりました。

Arrayメソッド: flatten

複数の階層構造を持つ配列を平坦な配列に変換します。

構文:

myarray.flatten();

戻り値:

  • (配列) 新しい平坦な配列.

例:

var myarray = [1,2,3,[4,5, [6,7]], [[[8]]]];

var newarray = myarray.flatten(); //newarrayjは[1,2,3,4,5,6,7,8]になりました。

Arrayメソッド: hexToRgb

16進数のカラー値をRGBに変換します。渡される配列は次のような16進数カラーフォーマットでなければなりません。 ['FF','FF','FF']

構文:

myarray.hexToRgb([array]);

引数:

  1. array - (真偽値, オプション) trueが渡された場合、文字列 (eg. "rgb(255,51,0)")の代わりに配列(eg. [255, 51, 0])が出力されます。

戻り値:

  • (文字列) RGBのカラー値を示す文字列。
  • (配列) もし配列フラグがセットされていたら、配列が代わりに返されます。

例:

['11','22','33'].hexToRgb(); //戻り値: "rgb(17,34,51)"

['11','22','33'].hexToRgb(true); //戻り値: [17, 34, 51]

参考情報:

Arrayメソッド: rgbToHex

RGBカラーの値を16進数に変換します。渡される配列は次のようなRGBカラー形式の配列でなくてはなりません。 [255,255,255]または [255,255,255,1]

構文:

myarray.rgbToHex([array]);

引数:

  1. array - (真偽値, オプション) trueが渡された場合、文字列(eg. "#ff3300")の代わりに配列 (eg. ['ff','33','00'])を返します。

戻り値:

  • (文字列) 16進数でカラー値を表現する文字列。RGB配列の4番目のAが0にセットされていた場合は、transparent文字列を返します。
  • (配列) 配列フラグがtrueならば、配列が代わりに返されます。

例:

[17,34,51].rgbToHex(); //戻り値: "#112233"

[17,34,51].rgbToHex(true); //戻り値: ['11','22','33']
[17,34,51,0].rgbToHex(); //戻り値: "transparent"

参考情報:

役に立つ関数

関数: $A

配列のコピーを作成します。DOMノードコレクション、arguementsオブジェクトといった反復処理が可能なオブジェクトに配列のプロトタイプを適用したい場合に役立ちます。

構文:

var copiedArray = $A(iterable);

引数:

  1. iterable - (配列) コピーする反復可能な要素。

戻り値:

  • (配列) 新たにコピーされた配列

例:

引数に配列を適用する:

function myfunction(){
    $A(arguments).each(function(argument, index){

        alert(argument);
    });
};
myfunction("One", "Two", "Three"); //"One"、"Two"、"Three"の順にアラート。

配列をコピーする:

var anArray = [0, 1, 2, 3, 4];

var copiedArray = $A(anArray); //戻り値: [0, 1, 2, 3, 4].

このドキュメントはMooToolsのドキュメントを元に高橋文樹が翻訳(ちょっと改変)しました。
本家と同じく、Attribution-NonCommercial-ShareAlike 3.0ライセンスで公表されています。

トップに戻る