ホームページ >ウェブフロントエンド >jsチュートリアル >配列要素を削除するためのJS関数入門_JavaScriptスキル

配列要素を削除するためのJS関数入門_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:39:121291ブラウズ

文字列を配列に変換して出力するコードを分割します:

コードをコピー コードは次のとおりです:





js は配列要素を削除します:

var arr=['a','b','c'];
'b' を削除するには、2 つの方法があります:

1.削除メソッド: arr[1] を削除


このとき、arr[1]は配列の長さは変化しませんが、元の配列のインデックスは変化しないという利点もあります。 🎜>

コードをコピーします



コードは次のとおりです:

この走査メソッドは未定義の要素をスキップします

* このメソッドは今後 IE4.o でサポートされる予定です


2. 配列オブジェクトの結合メソッド: arr.splice(1,1);


この方法では、それに応じて配列の長さも変化しますが、それに応じて元の配列のインデックスも変化します splice パラメータの最初の 1 は削除の開始インデックス (0 から数えます)、ここでは配列の 2 番目の要素です

2 番目の 1 は削除する要素の数です、ここでは 1 つの要素だけが削除されます、つまり 'b';

この時点では、削除された要素は

配列 に保持されないため、for などの配列を走査する通常の方法で配列要素を走査できます。
* この方法は IE5.5 以降でのみサポートされます

splice メソッドは配列要素を削除しますが、新しい配列要素を追加することもできることに注意してください。
例: arr.splice(1,1,'d','e'), d, e要素が配列 arr
に追加され、結果の配列は arr:'a','d','e','c'
になります。
JavaScript は、配列の長さプロパティを設定することによって配列を切り詰めます。配列の長さを短縮する唯一の方法は、配列内の要素を削除するために削除演算子を使用することです。ただし、その要素は未定義になります。要素を削除する方法と、配列の長さを変更せずに変更する方法は 2 つあります。

/*

* メソッド: Array.remove(dx)

* 関数: 配列要素を削除します。
* パラメーター: 削除された要素の dx 添字
* 戻り値: 元の配列を変更します。 Array

*/

//トラバーサルを通じて配列を再構築するためによく使用されます。






コードをコピーします

コードは次のとおりです。

Array.prototype.remove=function(dx ) { if(isNaN(dx)||dx>this.length){return false;} for(var i=0,n=0;i{ if(this[i]!=this[dx])
🎜>}
a = ['1','2','3','4','5' ];
alert("elements: " a "nLength: " a.length);
a.remove(0) //添字 0 の要素を削除
alert("elements: " a " nLength: " a.length);







コードをコピー


コードは次のとおりです:


/*
* メソッド: 配列.baoremove( dx) * 関数: 配列要素を削除します。

* パラメーター: 削除された要素の dx 添字。

* 戻り値: 元の配列の配列を変更します。 */// splice を使用してそれを実現することもできます。 this.splice(dx,1);}b = ['1','2','3','4' ,'5'];
alert("elements : " b "nLength: " b.length);
b.baoremove(1) //インデックス 1 の要素を削除
alert("elements : " b "nLength: " b.length);

IE5 이하 버전에서는 JavaScript의 Array 객체가 배열 요소를 삭제하는 기성 메서드를 제공하지 않는다는 것을 알고 있습니다. IE5.5 버전에서는 splice 방식이 있기는 하지만 특정 항목(또는 여러 항목)을 삭제하지는 않고, 특정 항목(또는 여러 항목)의 값만 삭제하므로 해당 항목이 여전히 존재한다는 의미이다. 배열의 길이는 변경되지 않았습니다.

실제로 배열에 삭제 메소드를 직접 추가할 수 있습니다(실제로 배열 구성원에서 배열 항목을 제거하는 것을 의미합니다). 아마도 루프를 사용하여 배열을 재할당하는 것을 생각할 수도 있지만 이는 매우 비효율적입니다.

다음으로 Array 객체의 두 가지 방법인 Slice와 Concat을 사용하여 배열 삭제를 사용자 정의하는 방법을 소개합니다.

구체적인 코드는 다음과 같으니, 안에 있는 댓글을 주목해주세요.

코드 복사 코드는 다음과 같습니다.

Array.prototype.del=function(n ) { / /n은 0부터 시작하는 숫자를 나타냅니다.
//Prototype은 객체 프로토타입입니다. 여기에서 객체에 사용자 정의 메소드를 추가하는 방법을 참고하세요.
if(n 이것을 반환합니다.
else
return this.slice(0,n).concat(this.slice(n 1,this.length)); 두 개 이상의 배열로 구성된 새 배열입니다.
     여기에 this.slice(0,n)/this.slice(n 1,this.length)를 반환하는 새로운 배열이 있습니다.         
슬라이스 메서드: 시작 위치와 끝 위치를 각각 지정하는 두 개의 매개변수를 사용하여 배열의 세그먼트를 반환합니다.
 */
}
//이 방법을 직접 추가해 보겠습니다.
var test=new Array(0,1,2,3,4,5);
test =test .del(3); //0부터 계산하면 여기서 4번째 항목이 삭제됩니다.
alert(test);


이런 방식으로 요구 사항을 충족하기 위해 Array 객체의 두 가지 메서드만 사용합니다.
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。