Home > Article > Web Front-end > How to delete specified array elements in javascript
Delete method: 1. Use the delete keyword; 2. Use the splice() operation method; 3. Iterative method, use a loop to iterate the array elements, and delete the items that match the items to be deleted; 4. Prototype prototype method , add a method on the prototype of Array to achieve the purpose of deletion.
The operating environment of this tutorial: windows7 system, javascript version 1.8.5, Dell G3 computer.
In JavaScript, besides Object, the Array type (array) is probably the most commonly used type. Arrays in JavaScript are very flexible compared to arrays in other languages. This kind of flexibility has advantages and disadvantages. The advantage is that it is creative and can provide various flexible solutions; the disadvantage is that it is easy to be brainless, because in fact, it is too flexible, and it is so flexible that it is uncontrollable and crazy.
After teasing a few words before, let’s get back to the point. Here are 7 ways to delete Array elements in JavaScript, namely using the length attribute, delete keyword, pop() stack method, and shift() queue method. , splice() operation method, forEach() or filter() iteration method and prototype prototype method.
delete keyword
JavaScript provides a delete keyword to delete (clear) array elements.
var colors = ["red", "blue", "grey", "green"];delete colors[0]; console.log(colors); // [undefined, "blue", "grey", "green"]
It should be noted that after using delete to delete an element, the length of the array does not change, but the deleted element is set to undefined.
splice() operation method
The JavaScript Array object provides a splice() method for performing specific operations on the array. splice() is probably the most powerful array method. It can be used in many ways. Here we only introduce the method of deleting array elements. When deleting array elements, it can delete any number of items by specifying only 2 parameters: the position of the first item to be deleted and the number of items to be deleted.
var colors = ["red", "blue", "grey"];var color = colors.splice(0, 1); console.log(color); // "red"console.log(colors); // ["blue", "grey"]
It can be seen that when the splice(0, 1) method is called, one item is deleted from the array starting from the first item.
Iteration method
The so-called iteration method is to use a loop to iterate the array elements, and delete the items that match the items to be deleted. The most commonly used place may be when the elements in the array are objects, and the array elements can be deleted based on a certain attribute of the object (such as ID).
The first method uses the most common ForEach loop to compare the elements and delete them after finding them.
var colors = ["red", "blue", "grey"]; colors.forEach(function(item, index, arr) { if(item === "red") { arr.splice(index, 1); } });
You can see that the splice() method is also needed to achieve deletion. The loop is just to find specific elements. Another idea is to push elements that do not need to be deleted into a new array in a loop, which can also achieve the purpose of falsely deleting specific elements.
The second way we use the filter method in the loop.
var colors = ["red", "blue", "grey"]; colors = colors.filter(function(item) { return item != "red"}); console.log(colors); // ["blue", "grey"]
The code is very simple. Find out the number of items whose elements are not red and return it to colors (in fact, you get a new array, not delete the original array), which can be regarded as deletion to a certain extent. The purpose of a specific element.
prototype prototype method
You can achieve the purpose of deletion by adding a method to the prototype of Array.
Array.prototype.remove = function(dx) { if(isNaN(dx) || dx > this.length){ return false; } for(var i = 0, n = 0; i < this.length; i++) { if(this[i] != this[dx]) { this[n++] = this[i]; } } this.length -= 1; };var colors = ["red", "blue", "grey"]; colors.remove(1); console.log(colors); // ["red", "grey"]
This method is actually to implement a deletion logic by yourself, and then add the deletion method to the Array prototype object. Then all Array objects in this environment can use this method. Although it is possible to do so, it is not recommended to modify the prototype of a native object in a production application. The reason is simple. If a method is missing in a certain implementation, then adding this method to the prototype of the native object may lead to naming conflicts when the code is run in another implementation that supports this method. And doing so may accidentally cause native methods to be overridden.
[Recommended learning: javascript advanced tutorial]
The above is the detailed content of How to delete specified array elements in javascript. For more information, please follow other related articles on the PHP Chinese website!