今天在寫代碼的過程中,javascript的數組,想要從一個數組中將指定的元素刪除,剛開始想的是直接將該元素直接等於null,但是這樣在數組中並沒有移除元素,也就是說數組長度沒有改變,後來就想到了以下方法:
- /*
- * 方法:Array.remove(dx)
- * 功能:根據元素值刪除數組元素.
- * 參數:元素值
- * 返回:在原數組上修改數組
- */
- Array.prototype.indexOf = function (val) {
- for (var i = 0; i < this.length; i++) {
- if (this[i] == val) {
- return i;
- }
- }
- return -1;
- };
- Array.prototype.removevalue = function (val) {
- var index = this.indexOf(val);
- if (index > -1) {
- this.splice(index, 1);
- }
- };
- /*
- * 方法:Array.remove(dx)
- * 功能:根據元素位置值刪除數組元素.
- * 參數:元素值
- * 返回:在原數組上修改數組
- */
- 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;
- };
方法二:
- function remove(index){
- return arr.slice(0,index).concat(arr.slice(index+1,arr.length))
- }
其中第二種方法的效率要高於第一種方法。