2010-10-01 32 views
1

所以我有此數組:如何使用jQuery查找數組中的項目?

var statuses = { New:1, Addressed:2, Rejected:3, Recovered:4, Billed:5, Completed:6 }; 

而且我想基本上搜索陣列爲「拒絕」鍵,並使其返回值,這樣的話我就可以去向前/向後數組作爲需要。

我試過這個,但它總是以「-1」表示無法找到它。

jQuery.inArray("Rejected", statuses) 
+1

你有什麼是**不是**數組。這是一個有很多屬性的JavaScript對象。數組用方括號表示。不要誤解這兩種不同的概念。 – 2010-10-01 19:10:07

回答

2
"Rejected" in statuses; 

無需jQuery的。

如果你想要的值,這樣做:

statuses["Rejected"]; 

這將返回undefined如果「拒絕」不在對象。

正如其他人所說的,{blah: value, blah2: value}表示的文字表示對象,[value1, value2, value2]表示數組。

2

這不是一個數組,這是一個對象。

這是一個容易得多:

if (statuses.hasOwnProperty("Rejected")) { 
    // It has it 
    var valueOfRejected = statuses.Rejected 

    // valueOfRejected now equals 3 
} else { 
    // It doesn't 
} 

您可以安全地取回Rejected關鍵,即使它沒有在對象而不發出一個錯誤存在;檢索到的值將等於undefined

+0

如果一個屬性不存在於某個對象上,並且您嘗試訪問該屬性,則不會拋出任何錯誤,它只會產生未定義的屬性,例如, '({})。iDontExist === undefined;' – CMS 2010-10-01 19:21:17

0
var statuses = { New:1, Addressed:2, Rejected:3, Recovered:4, Billed:5, Completed:6 }; 

​$.inJsonObject = function(ind, obj)​​​ { 

    return (typeof obj[ind] != 'undefined'); 

}​; 

$.inJsonObject('Rejected', statuses); // true/false 

​