Home > Web Front-end > JS Tutorial > body text

Introduction to JS functions for deleting array elements_javascript skills

WBOY
Release: 2016-05-16 17:39:12
Original
1279 people have browsed it

split code to convert a string into an array and output it:

Copy code The code is as follows:





js delete array elements:
var arr=['a','b','c'];To delete the 'b', there are two methods:

1.delete method: delete arr[1]

In this way, the length of the array remains unchanged. At this time, arr[1] becomes undefined, but it also has the advantage that the index of the original array remains unchanged. At this time, you can use


Copy code

The code is as follows: for(index in arr) {   document.write ('arr[' index ']=' arr[index]);
}



This traversal method skips undefined elements

* This method will be supported by IE4.o from now on


2. Array object splice method: arr.splice(1,1);

In this way, the array length changes accordingly, but the original array index also changes accordingly

The first 1 in the splice parameter is the starting index of deletion (counted from 0), here it is the second element of the array The second 1 is the number of elements to delete, here only one element is deleted , that is, 'b';
At this time, you can traverse the array elements in the normal way of traversing the array, such as for, because the deleted elements are not retained in the
array

* This method is only supported after IE5.5

It is worth mentioning that while the splice method deletes array elements, it can also add new array elements
For example, arr.splice(1,1,'d','e'), d, e The elements are added to the array arr

The resulting array becomes arr:'a','d','e','c'

JavaScript truncates an array by setting the length property of the array. The only way to shorten the length of an array is to use the delete operator to delete an element in the array. Although that element becomes undefined, the length property of the array does not There are two ways to delete elements and change the length of the array without changing.


/*
* Method: Array.remove(dx)

* Function: Delete array element.

* Parameter: dx subscript of deleted element.

* Return: Modify on the original array Array

*/
 
 //It is often used to reconstruct the array through traversal.




Copy code

The code is as follows: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); //Delete the element with subscript 0
alert("elements: " a "nLength: " a.length);







Copy code


The code is as follows:

/*

* Method: Array.baoremove( dx) * Function: Delete array element. * Parameter: dx subscript of deleted element. * Return: Modify the array on the original array. */// We can also use splice to achieve it.
 this.splice(dx,1);
}
b = ['1','2','3','4','5'];
alert("elements : " b "nLength: " b.length);
b.baoremove(1); //Delete the element with index 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 객체의 두 가지 메서드만 사용합니다.
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template