JavaScript > 配列

更新日 2012-07-21
広告
配列の使い方をまとめたサンプルプログラム array.js を以下に記します。
// 配列の宣言
var testArray1 = [1, 2, 3];

// 要素の参照
print('testArray1[0] = ' + testArray1[0]);
print('testArray1[1] = ' + testArray1[1]);
print('testArray1[2] = ' + testArray1[2]);

// 配列の長さの参照 (length)
print('testArray1.length is ' + testArray1.length);

// 配列の最後尾に要素を追加 (push)
// (頭に要素を追加する関数はunshift)
var testArray2 = [];
testArray2.push(4);
testArray2.push(5);

// カンマ区切りの文字列を生成(join)し、出力
print('testArray2 is ' + testArray2.join(',')); 


// 配列の結合 (concat)
var concatedArray = testArray1.concat(testArray2);
print('concatedArray is ' + concatedArray.join(','));

// 配列の切り出し (slice)
var testArray3 = [10, 20, 30, 40, 50];
var slicedArray = testArray3.slice(2, 4);
print('slicedArray is ' + slicedArray.join(','));

// ソート (sort / reverse)
var sortArray = [3, 5, 8, 2, 4];
sortArray.sort();
print('sortArray is ' + sortArray.join(','));

sortArray.reverse();
print('reversed sortArray is ' + sortArray.join(','));


// new Arrayを使わないほうがよい理由
var newArray1 = new Array(5, 4, 3);
print('newArray1.length is ' + newArray1.length);
var newArray2 = new Array(5);
print('newArray2.length is ' + newArray2.length);
これをRhinoで実行してみます(見やすくするために改行を入れています)。
$ rhino array.js
testArray1[0] = 1
testArray1[1] = 2
testArray1[2] = 3

testArray1.length is 3

testArray2 is 4,5

concatedArray is 1,2,3,4,5

slicedArray is 30,40

sortArray is 2,3,4,5,8
reversed sortArray is 8,5,4,3,2

newArray1.length is 3
newArray2.length is 5
「配列の宣言時にnew Arrayを使わないほうがよい」と、あちこちで言われていますが、その理由の1つが、最期の newArray1 と newArray2 の length の値です。newArray2のように、引数が1つ、かつ、自然数だと、new Arrayはそれを配列の要素数だと判断するためです。これは混乱の元になります。

オブジェクト配列のソート

オブジェクトの配列があるときに、オブジェクトのあるプロパティを使ってソートしたい場合があります。 以下に、一例を示します。
var someArray = [ {x:5, y:2}, {x:3, y:8}, {x:8, y:4} ];

var sortArray = someArray.sort (function (d1, d2) {
         return d1.x - d2.x;
});
これで、xの値でソートされます。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system