2017-01-05 100 views
0

如何使用對象的位置移除元素?我例如想要刪除第二個。從對象jquery中移除元素

Object {duur: ".short", taal: ".nl", topic: ".algemeen-management"} 
+0

屬性是沒有順序的。你不能可靠地說出哪一個是「第二」屬性。 –

+0

[如何從JavaScript對象中刪除屬性?](http://stackoverflow.com/questions/208105/how-to-remove-a-property-from-a-javascript-object) –

+0

對象鍵沒有[保證訂單](http://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order) – maioman

回答

1

Object.keys()會給你在它是如何定義的順序。 總是最好根據密鑰名稱刪除。因爲,在一個對象中,鍵沒有完全分類和他們沒有任何順序

var obj = { 
 
    duur: ".short", 
 
    taal: ".nl", 
 
    topic: ".algemeen-management" 
 
}; 
 
console.log(obj); 
 
var position = 2; 
 
delete obj[Object.keys(obj)[position - 1]]; 
 
console.log(obj);

最好的和正確的方式做的是密鑰名刪除:

var obj = { 
 
    duur: ".short", 
 
    taal: ".nl", 
 
    topic: ".algemeen-management" 
 
}; 
 
console.log(obj); 
 
var key = "taal"; 
 
delete obj[key]; 
 
console.log(obj);

+3

看來你是自相矛盾的。首先你說Object.keys()按照它們定義的順序返回屬性,然後你說鍵沒有任何順序;)備份第二個第三句:Object.keys({foo:42, 21:'x'})'(在Chrome中返回'[21,'foo']',而不是'['foo',21]' –

+0

@FelixKling啊,但是,定義的順序是不同的......好吧, eeks。我不知道如何正確填寫 –

0

更好的使用delete運算符這樣的:

delete myObject.taal;

+0

這並不完全回答OP的問題 –

0

你可以使用:delete(object.taal)。

+0

這並不能完全回答OP的問題 –

1

這樣的:

var index = 1 ; // the position you want minus 1 

var example = {duur: ".short", taal: ".nl", topic: ".algemeen-management"} 

delete example[Object.keys(example)[index]]; 
+0

您可能想指出,這不適用於任意對象。 –