JavaScriptの配列メンバーの追加、削除紹介

1731 ワード

JavaScriptでは、配列長が可変であるため、新しいメンバを直接定義することによって、配列に追加することができます.
 
  
var o = [2,3,5];
o[3] = 7;
console.log(o);//[2,3,5,7]
この方法以外にも、プッシュ()語を使うことによって同じ目的を達成することができる.
 
  
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()文を使用して、pop()文は削除されたメンバーに戻りますが、配列長は1:
 
  
var p = o.pop();
console.log(p);//17
console.log(o.length);//9
unshift()に対応して、もし配列の先頭からメンバーを削除する必要があるなら、shift()文を使って、shift()文はこの削除されたメンバーに戻りますが、配列長は1を減らします.
 
  
var s = o.shift();
console.log(s);//2013
console.log(o.length);//8
シフト()文とpop()文の他に、deleteオペレータによって配列中のメンバーを削除することもできます.shift()やpop()とは異なり、delete動作後の配列のlength属性はそのままになり、つまり配列は不連続になります.
JavaScriptでは、配列のlength属性を設定して配列を変更することもできます.length値が配列メンバー数より小さい場合、JavaScriptは配列を切り取ります.length値が配列メンバー数より大きい場合、JavaScriptは配列が不連続になります.length値が読み取り専用の場合、新しいメンバを配列内で直接定義する操作は失敗します.
 
  
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,undefined,undefined]

var a = [1,2,3];
Object.defineProperty(a, "length", {writable:false});
a[3] = 4;
console.log(a);//[1,2,3]