JavaScript では配列の長さが可変であるため、新しいメンバーを直接定義して配列に追加できます。
var o = [2,3,5];
o[3] = 7;
console.log(o);//[2,3,5,7]
このメソッドに加えて、push() ステートメントを使用しても同じ目的を達成できます:
o.push(11);
console.log(o);//[2,3,5,7,11]
o.push(13,17);
console.log(o);//[2,3,5,7,11,13,17]
配列の先頭に新しいメンバーを追加する必要がある場合は、unshift() ステートメントを使用できます:
o.unshift(2014);
console.log(o);//[2014,2,3,5,7,11,13,17]
o.unshift(2013, 2012);
console.log(o);//[2013,2012,2014, 2,3,5,7,11,13,17]
Push() に対応して、配列の末尾からメンバーを削除する必要がある場合は、pop() ステートメントを使用すると、削除されたメンバーが返され、配列の長さが 1 減ります。
var p = o.pop();
console.log(p);//17
console.log(o.length);//9
unshift() に対応して、配列の先頭からメンバーを削除する必要がある場合は、shift() ステートメントを使用すると、削除されたメンバーが返され、配列の長さが 1 減ります。
var s = o.shift();
console.log(s);//2013
console.log(o.length);//8
shift() ステートメントと Pop() ステートメントに加えて、delete 演算子を使用して配列内のメンバーを削除することもできます。 shift() や Pop() とは異なり、配列の長さプロパティは削除操作後も変化しません。つまり、配列は不連続になります。
配列の長さ属性を設定することで、JavaScript で配列を変更することもできます。長さの値が配列メンバーの数より小さい場合、長さの値が配列の数より大きい場合、JavaScript は配列をインターセプトします。メンバーの場合、JavaScript は配列を「連続していません」に変更します。長さの値が読み取り専用の場合、配列内の新しいメンバーを直接定義すると失敗します:
console.log(o);//[2012,2014, 2,3,5,7,11,13]
o.length = 2;
console.log(o);//[2012,2014]
o.length = 4;
console.log(o);//[2012,2014,未定義,未定義]
var a = [1,2,3];
Object.defineProperty(a, "length", {writable:false});
a[3] = 4;
console.log(a);//[1,2,3]