2013-01-09 54 views
1

我得從JQuery的$該功能.inArray一個問題(我也嘗試過的indexOf)的Javascript搜索

我的代碼:

var branches = circles[i].branches; 
var counter = 0; 
for (var j = 0; j < branches.length; j++) { 

    var circle_branch = branches[j]; 
    var index = $.inArray(circle_branch, activeBranchSettings); 
    if (index == -1)counter++;     
} 
if(counter == 0) circles[i].setMap(map); 

所以我與谷歌地圖合作API和我有一個控制面板與一些類別(分支機構),我切換標記。每個圓圈(標記)可以有多個分支,並且這些ID附加到每個圓圈。所以我循環遍歷分支,並希望在另一個數組(activeBranchSettings)中找到該ID,每次沒有匹配時我增加一個計數器。如果計數器最終爲0,則打開此圓。所以這就告訴哪些標記不應該顯示,哪些應該顯示。

無論是解決或不完美的方式,問題是

var index = $.inArray(circle_branch, activeBranchSettings); 

返回-1每次! 值在該數組中的那一點,我試圖將「circle_branch」轉換爲一個字符串與.toString(),但仍然沒有改變,任何想法?

+0

的hellis什麼'activeBranchSettings'變了一步?它來自哪裏? – Archer

+0

我們需要知道'circle_branch'變量的例子,以及'activeBranchSettings'數組中的內容。 – Owlvark

+0

'circle_branch'是一個整數,'activeBranchSettings'是一個整數的數組 – mrpool89

回答

0

根據jQuery文檔inArray具有以下語法。

jQuery.inArray(value, array [, fromIndex ]) 

手段value應該來firt和array應該放在第二位。它不是很清楚你的例子什麼是activeBranchSettings它是一個數組還是可搜索的值?

+0

'activeBranchSettings'是一個數組是的,如果我在value參數中輸入「5」,它會返回正確的索引,所以我不知道'circle_branch' – mrpool89

1

這些測試用例運行良好。 所以也許一個比較的數據類型(typeof運算(變量))的是要找到問題

<script type="text/javascript"> 
    var arr = new Array('a', 'b', 'c', 'd'); 
    var look = new Array('d', 'b'); 

    for(var i=0; i<arr.length; i++) 
    alert($.inArray(arr[i], look)); 
</script>