您不會顯示您如何將1,2
分配到data[10]
的代碼。您可以從在JavaScript shell /控制檯中執行以下內容中看到,1,2
的值僅爲2
。有關逗號運算符的工作方式,請參見reference。
但是,您收到的錯誤消息表明您有字符串"1,2"
。把它變成一個數組,你應該使用split()
爲:
> data[10] = "1,2"
1,2
> data[10].split(',')
[ "1", "2" ]
遍歷值,你可以使用in
運營商對所得到的數組中:
var data = new Array();
data[10] = '1,2';
var valueArray = data[10].split(',');
for (var i in valueArray) {
alert('valueArray[' + i + '] is ' + valueArray[i]);
}
您可以運行此在瀏覽器中的控制檯和alert
將顯示出兩個消息你:
- valueArray [0]爲1
- valueArray [1]是2
請注意,在循環開始之前,您不需要初始化i
。 in
運算符將自動執行此操作。另外,最好在上面的代碼中使用局部變量var i
。
另一方面,如果你是JS的新手,但你需要處理大量的數據結構操作,值得學習underscore.js。特別要看看。下劃線可以幫你避免編寫大量的循環邏輯。
但是,如果您想要進行會員資格檢查,那麼您需要使用不是in
而是Array.indexOf()
。請參閱http://jsfiddle.net/nRS9m以獲取評論中您的jsfiddle分支的示例。更多例子:
> valueArray
[ "1", "2" ]
> valueArray.indexOf("3")
-1
> valueArray.indexOf("1")
0
> valueArray.indexOf("2")
1
> valueArray.indexOf(1)
-1
> valueArray.indexOf((1).toString())
0
來源
2012-06-27 02:54:26
Sim
位置10處的數據a ** string **的值爲「1,2」還是**數組**,值爲[1,2]? – carlosfigueira
我不知道如何檢查,因爲我解析它從一個PHP文件與JSON ENCODE – Sir
@Dave,如果你是從JSON解析,那麼它將是一個字符串。我將更新我的示例代碼,向您展示如何訪問各個數組元素。 – Sim