2013-11-14 69 views
-1

我正在使用jquery inArray搜索具有關聯數組的元素。我在下面的代碼中做錯了什麼?它返回-1 ..使用inArray搜索

小提琴 - http://jsfiddle.net/hwSuD/1/

var arr = []; 

arr[3435345] = { 
    location : 'Earth' 
} 

console.log($.inArray(3435345,arr)); //throws -1 
+1

'$ .inArray'搜索值,而不是鍵。 –

+1

這是* NOT *一個「關聯數組」。那些不存在於JavaScript中!有數字數組('[]')和對象('{}')。我會在這裏建議一個對象。用一個數組做'arr [3435345]',也會將索引0 - 3435344添加到數組中(如'undefined')!你應該這樣做:'var obj = {}; obj [3435345] = {位置:'地球'}; console.log(obj.hasOwnProperty(3435345));' –

+0

謝謝hazmat .. – user1184100

回答

2

$.inArray()使用會尋找3435345的陣列並返回索引。您正在將一個對象添加到該數組的3435345索引中。這是你如何使用$.inArray()

var arr = []; 
arr.push(3435345); 
var index = $.inArray(3435345, arr); 

這將返回0

您可能希望要創建一個哈希表?在這種情況下,這樣做。

var obj = {}; 
obj[3435345] = { location: 'Earth' }; 
if (obj.hasOwnProperty(3435345)) { 
    // It exists! 
} 
+0

沒問題!很高興我能幫上忙。 –