2013-04-26 73 views
0

所以我有一個數組,並且我想遍歷數組並檢查它中的值是否與某些字符串匹配,如果是這樣,請執行一些操作。如何遍歷數組並檢查數組值

這是我到目前爲止有:

var rgt_count = a_related_genres_leon.length; // <- 3 items 

for (var i = 0; i < rgt_count; i++) { 

    if inArray("Music", a_related_genres_leon) { 
     console.log('Music'); 
    } else if inArray("TV", a_related_genres_leon) { 
     console.log('TV'); 
    } else if inArray("Comedy", a_related_genres_leon) { 
     console.log('Comedy'); 
    } 
} 

我得到一個未捕獲的SyntaxError:意外的標記(錯誤現在

我也試過這個

if text($.inArray("Music", a_related_genres_leon)) { 
     console.log('Music'); 
    } else if text($.inArray("TV", a_related_genres_leon)) { 
     console.log('TV'); 
    } else if text($.inArray("Comedy", a_related_genres_leon)) { 
     console.log('Comedy'); 
    } 
+2

語法錯誤,因爲'if'子句的語法在JavaScript中是不同的。 – VisioN 2013-04-26 17:24:59

回答

4

無論是搜索陣列中的特定元素:

if ($.inArray("Music", a_related_genres_leon) > -1) { 
    console.log('Music'); 
} 
if ($.inArray("TV", a_related_genres_leon) > -1) { 
    console.log('TV'); 
} 
if ($.inArray("Comedy", a_related_genres_leon) > -1) { 
    console.log('Comedy'); 
} 

或迭代陣列

var rgt_count = a_related_genres_leon.length; // <- 3 items 
for (var i = 0; i < rgt_count; i++) { 
    console.log(a_related_genres_leon[i]); 
} 

中的所有元素,但不這樣做兩者的混合物。

+0

謝謝!這麼快,我可以檢查這個之前還有8分鐘,我還發現'if(jQuery.inArray(「Music」,a_related_genres_leon)){'也可以:) – 2013-04-26 17:31:04

+0

@Leon:'inArray'返回元素,所以如果元素的索引爲'0',則條件將評估爲'false',這是錯誤的。您必須明確檢查返回值是不是'-1'(這意味着元素不包含在數組中)。 – 2013-04-26 17:32:14

1

試試這個:

if ($.inArray("Music", a_related_genres_leon) > -1) { 
    console.log('Music'); 
} else if ($.inArray("TV", a_related_genres_leon) > -1) { 
    console.log('TV'); 
} else if ($.inArray("Comedy", a_related_genres_leon) > -1) { 
    console.log('Comedy'); 
} 

From the jQuery.inArray() API Docs

The $.inArray() method is similar to JavaScript's native .indexOf() method in that it returns -1 when it doesn't find a match. If the first element within the array matches value, $.inArray() returns 0.

Because JavaScript treats 0 as loosely equal to false (i.e. 0 == false, but 0 !== false), if we're checking for the presence of value within array, we need to check if it's not equal to (or greater than) -1.