SYNTAX
arr.sort( [function] )
arr.push()
arr.pop()
String join( String sep )
■ 結合(concat)
var a, b, c, d;
a = new Array(1,2,3);
b = "test";
c = new Array(42, "foo");
// [1, 2, 3, "test", 42, "foo"]
d = a.concat(b, c);
■ 追加(push)
var a = ["a"];
a.push( "b" );
a.push( 2 );
■ 挿入.insert
SYNTAX
Object unshift()
■ 取得.削除
SYNTAX
Object shift()
DESC
配列の先頭の要素を削除し、削除した要素を返します。
var a = ["a", "b", "c" ];
// "a" が返り, ["b", "c"] となる
var s = a.shift();
■ 削除(pop)
末尾を削除するには pop() を使う。
var path = "c:/foo/bar/test.txt";
var a = path.split( "/" );
var file = a.pop();
配列の要素を削除するには単項演算子 delete をつかう
var a = ["a", "b", "c"];
delete a[1];
■ 抽出.slice
SYNTAX
Array slice(
start : Number // 開始 index
[, end : Number] // 終了 index
)
DESC
配列の部分配列を返す。
a = [ 1, 2, 3 ];
// 先頭( 0 番目 )のみカット。 end は省略すると配列の最後まで
// [2,3]
a.slice( 1 );
// start に 負を指定すると後ろからの指定。 a.length + start 番目から開始となる。
// [3]
a.slice( -1 );
// end で指定したひとつ前の要素まで返す。 つまり [ start : end )
// [1,2]
a.slice( 0, 2 );
// end に 負を指定すると後ろからの指定。 a.length + end の指定となる。
// 最後だけ除去する
// [1,2]
a.slice( 0, -1 );
// これと同じ。
a.pop();
■ join
配列の要素をつなげる
var path = "c:/foo/bar/test.txt";
var a = path.split( "/" );
a.join( "/" )
■ ソート(sort)
辞書順でソートされる。
var a = [ "e", "d", "a" ];
a.sort();
// [ "a", "d", "e" ]
ソートをカスタマイズするには, 引数に関数型のオブジェクトをわたす。
比較関数のインターフェイスは 比較対象の Object を2個もらい, 大小に応じて 1, 0, -1 を返す。
// obj{ age, name }
function mySort( oA, oB )
{
if ( oA.age > oB.age ) return 1;
else if ( oA.age == oB.age ) return 0;
else return -1;
}
var a = [ { age:2, name:"Tanaka"}, { age:1, name:"Suzuki"} ]
a.sort( mySort );
// BAD
// このとき Interpreter が実行される前にとまる
// 逐次 Parse してるわけではないらしい
WScript.echo( "Global Code" );
// ERROR
//var a = new Array("aaa" "bbb" "ccc"); // ここでとまる
// OK
var a = new Array("aaa", "bbb", "ccc");