2014-09-19 42 views
5

我有一個我正在使用的數組,我很難描述它是什麼樣的數組,這使我很難與它。到目前爲止它對我很有用。我只是好奇。什麼是這個陣列稱爲...以及如何從中刪除項目

我最終希望刪除此數組的末尾。我試過.pop().grep()。它不工作。

這是我的代碼的一個例子。

var options = {}; 
$('.option:visible').each(function(){ 
    var option_label = ""; 
    var option_selected = []; 
    var option_img = ""; 

    ... 


    options[option_label] = { 
     option_selected: option_selected, 
     option_image : option_img 
    }; 
}); 

我所試圖做的是:

if(option_label.indexOf("something") != -1) { 
    //then pop off options 
} 
//continue about your business 

爲了澄清我不知道該option_label的確切名稱。

+0

'options'是一個'object'。在JS中,您可以使用'obj [propName]'將屬性添加到對象。 – 2014-09-19 22:35:14

+1

你指的是哪個變量? 'option_selected'?這是我看到的唯一陣列。 – slebetman 2014-09-19 22:35:32

+0

你所擁有的唯一數組是'option_selected = []',並且這個數組已經是空的,那麼你想從它移除什麼? – Guffa 2014-09-19 22:35:36

回答

1

它是Javascript對象。你可能不希望有一個look at this question刪除屬性,它給不同的方式。其中之一是:

delete options.something; 
1

基本上一個對象(或可以查看它作爲一個關聯數組),所以嘗試刪除:

delete options[option_label]; 
2

這是什麼陣叫...

這不是一個數組的。這是一個對象。一個數組是訂購的一組索引值(數字)鍵入的條目。一個對象(在JavaScript中)是一組無序的鍵/值對。

...以及如何從中

刪除項目要刪除對象的屬性,您使用delete,指定屬性要麼用括號語法和屬性名的字符串表達式(它可以是一個變量引用,比如你option_label):

delete options[option_label]; 
// or 
delete options["some property name"]; 
// or 
delete options["some " + " property" + "name"]; 

...或點語法和文字屬性名稱:

delete options.someLiteralPropertyName; 

.pop對象不存在,因爲對象沒有順序,所以將「最後」條目從對象中彈出的概念是沒有意義的。