js配列削除要素
2075 ワード
var arr=['a','b','c']; 「b」を削除するには、2つの方法があります.1.deleteメソッド:delete arr[1]この方式では配列長が変わらず、arr[1]がundefinedになったが、元の配列のインデックスも変わらないという利点もある、このとき配列要素を遍歴するにはfor(index in arr)documentを用いることができる.write('arr['+index+']='+arr[index]); このような遍歴方式は、undefinedの要素*をスキップする.oこれからも応援します.配列オブジェクトspliceメソッド:arr.splice(1,1);このように配列長は相応に変化するが、元の配列インデックスも相応にspliceパラメータの最初の1を変化させ、削除の開始インデックス(0から計算)であり、ここでは配列の2番目の要素の2番目の1であり、削除要素の個数であり、ここでは1つの要素、すなわち'b'のみを削除する.この場合、削除された要素は配列に*メソッドIE 5を保持しないため、配列を巡回する要素は通常の配列を巡回する方法で使用することができる.5以降、spliceメソッドがサポートするのは、配列要素を削除すると同時に、arr.splice(1,1,'d','e'),d,eの2つの要素が配列arrに追加された結果、配列がarr:'a','d','e','c'の1編になるなど、配列要素を追加することもできる.delete演算子を用いる配列中の要素を削除すると、その要素は未定義になるが、配列のlength属性は2つの削除要素を変更せず、配列長も変更する方法である./**メソッド:Array.remove(dx)*機能:配列要素を削除する.*パラメータ:dxは要素の下付き文字を削除します.*戻り:元の配列に配列を変更する*///遍歴によって配列を再構築することがよく用いられる. Array.prototype.remove=function(dx) { if(isNaN(dx)||dx>this.length){return false;} for(var i=0,n=0;i
もう一つ:
JavaScriptのArray(配列)オブジェクトは、IE 5以降のバージョンでは、既存の配列要素を削除する方法を提供していないことを知っています.IE 5.5+のバージョンではspliceメソッドがありますが、1つ(または複数)を削除するのではなく、1つ(または複数)の値をクリアするだけです.つまり、そのアイテムは依然として存在し、配列の長さは変わりません.
実際には、配列の削除方法を自分で追加することができます(ここでは、配列の真の1つを配列メンバーから削除することを意味します).ループで配列に値を再割り当てすることを考えるかもしれませんが、もちろんできますが、効率は低いです.
次に,Arrayオブジェクトの2つのメソッドslice,concatを用いて配列の削除を定義する方法を紹介する.
具体的なコードは以下の通りです.中のコメントに注意してください.
もう一つ:
JavaScriptのArray(配列)オブジェクトは、IE 5以降のバージョンでは、既存の配列要素を削除する方法を提供していないことを知っています.IE 5.5+のバージョンではspliceメソッドがありますが、1つ(または複数)を削除するのではなく、1つ(または複数)の値をクリアするだけです.つまり、そのアイテムは依然として存在し、配列の長さは変わりません.
実際には、配列の削除方法を自分で追加することができます(ここでは、配列の真の1つを配列メンバーから削除することを意味します).ループで配列に値を再割り当てすることを考えるかもしれませんが、もちろんできますが、効率は低いです.
次に,Arrayオブジェクトの2つのメソッドslice,concatを用いて配列の削除を定義する方法を紹介する.
具体的なコードは以下の通りです.中のコメントに注意してください.
--------------------------------------------------------------
Array.prototype.del=function(n) { //n , 0 。
//prototype , 。
if(n<0) // n<0, 。
return this;
else
return this.slice(0,n).concat(this.slice(n+1,this.length));
/*
concat : , 。
this.slice(0,n)/this.slice(n+1,this.length)
, , n 。
slice : , , 。
*/
}
//
var test=new Array(0,1,2,3,4,5);
test=test.del(3); // 0 , 4 。
alert(test);