⑴ js中如何刪除一個對象的方法
第一種方法是比較徹底的,使用delete刪除之後,JS的垃圾處理機制會自動將無指向的函數佔用空間刪除。
同時 delete刪除之後的一個對象,會連同名稱一起,在這個對象中被刪除清空。
而a.show=null,只不過是將這個對象的一個名為show的鍵值給賦予了一個null的數據,雖然佔用空間會急劇縮小,但這個鍵值還是存在於這個對象中的。
至於沒有了指向的function(){alert();}這個函數,會被垃圾回收機制消除掉,釋放內存空間。
⑵ Javascript根據指定下標或對象刪除數組元素
將一下代碼放在全局js文件中:
Js代碼
復制代碼
代碼如下:
/**
*刪除數組指定下標或指定對象
*/
Array.prototype.remove=function(obj){
for(var
i
=0;i
<this.length;i++){
var
temp
=
this[i];
if(!isNaN(obj)){
temp=i;
}
if(temp
==
obj){
for(var
j
=
i;j
<this.length;j++){
this[j]=this[j+1];
}
this.length
=
this.length-1;
}
}
}
使用方法:
Js代碼
復制代碼
代碼如下:
var
arr
=new
Array();
arr[0]="dddddd";
arr[1]="dxxxxxxx";
arr[2]="vvvvvvv";
arr[3]="dbbbbb";
var
str
="vvvvvvv";
arr.remove(3);//刪除下標為3的對象
arr.remove(str);//刪除對象值為「vvvvvvv」
⑶ JS中刪除對象的某個屬性
delete 是刪除對象的屬性的唯一真正的方法
但它的性能要比 object[key] = undefined 差很多
這個選擇不是這個問題的正確答案!但是,如果你小心使用它,你可以大大加快一些演算法。如果您delete在循環中使用並且在性能方面存在問題,可以考慮這種用法
在數組中,與普通的舊對象不同,使用delete在表單中留下垃圾,null在數組中創建一個「洞」, 而且length不變
把
for (var g = 0; g < arr[i].c.length; g++) {
改成
for (var g = arr[i].c.length-1; g >=0; g--) {
就正常了
原因就在於,如果從頭開始循環,遇到連續兩個需要刪除的元素時,刪掉第一個,下一個元素就自動頂上來代替已刪除的元素位置,然後程序再一次循環時,就會跳過這個元素而去處理下下個元素,這樣就會造成刪除不全的情況了。
解決的辦法就是從後面往前面刪,就可以完美避免上面的問題。
⑸ js中刪除數組或對象
在vue中使用
vue.delete()
刪除對象屬性
通過delete操作符, 可以實現對對象屬性的刪除操作, 返回值是布爾
例: var obj={name: 'zhagnsan',age: 19 }
delete obj.name //true
typeof obj.name //undefined
同樣可用於函數,數組,變數,對象,但對象不能刪除,只能做到刪除對象屬性
刪除變數
例: var name ='zs' //已聲明的變數
delete name //false
console.log(typeof name) //String
age = 19 //未聲明的變數
delete age //true
typeof age //undefined
this.val = 'fds' //window下的變數
delete this.val //true
console.log(typeof this.val) //undefined
刪除數組
以聲明數組返回false,未聲明返回true
var arr = ['1','2','3'] ///已聲明的數組
delete arr //false
console.log(typeof arr) //object
arr = ['1','2','3'] //未聲明的數組
delete arr //true
console.log(typeof arr) //undefined
var arr = ['1','2','3'] //已聲明的數組
delete arr[1] //true
console.log(arr) //['1','empty','3']
刪除函數
var fn = function(){} //已聲明的函數
delete fn //false
console.log(typeof fn) //function
fn = function(){} //未聲明的函數
delete fn //true
console.log(typeof fn) //undefined
刪除對象
var person = {
height: 180,
long: 180,
weight: 180,
hobby: {
ball: 'good',
music: 'nice'
}
}
delete person ///false
console.log(typeof person) //object
var person = {
height: 180,
long: 180,
weight: 180,
hobby: {
ball: 'good',
music: 'nice'
}
}
delete person.hobby ///true
console.log(typeof person.hobby) //undefined
⑹ js怎麼刪除對象數組的內容
var arr = new Array(0,1,2,3,4); // 刪除從2開始的兩個元素,位置從0開始 // 返回移除元素的數組 var reArr = arr.splice(2,2);
⑺ js怎麼刪除對象數組的內容
var
arr
=
new
Array(0,1,2,3,4);
//
刪除從2開始的兩個元素,位置從0開始
//
返回移除元素的數組
var
reArr
=
arr.splice(2,2);