2013-10-19 37 views
0

我有一個字符串,它包含由「,」和「;」分開的1和0。
javascript拆分不丟失第一個元素(不是正則表達式)

var x = "1,1,0;1,0,0;1,1,1;"; x.split(";"); 

這個wil輸出一個只有兩個字符串的數組:1,0,0和1,1,1。
我要的是把所有這些數字的二維數組:
如果不僅僅是分割字符串一個更聰明的辦法,請讓我知道。
否則,請告訴我如何解決上述問題。

+2

你說的事情其實並沒有發生。反正你的語法不正確;你忘了引用字符串。 – Pointy

+1

誰會投這個問題**好嗎?!?發佈的代碼生成一個語法錯誤,看在上帝的份上。 – Pointy

+0

很抱歉,那是因爲我沒有複製並粘貼它。我會糾正它。並且請不要苛刻。 – user2898733

回答

5
  1. 你需要在你的字符串周圍加引號。
  2. 評論者是正確的,你的數組包含所有3個字符串。你忘記了數組索引從0開始,而不是1?
  3. x.split不修改X,它返回一個數組

你可能想是這樣的

var str = "1,1,0;1,0,0;1,1,1"; 
    var arr = str.split(";"); 

    for (var i = 0, len = arr.length; i < len; i++) 
    { 
     arr[i] = arr[i].split(","); 
    } 

,並驗證結果

for (var i = 0, len = arr.length; i < len; i++) 
    { 
     for (var j = 0, len2 = arr[i].length; j < len2; j++) 
     { 
      document.write(arr[i][j] + " | "); 
     } 

     document.write("<br>"); 
    } 
+0

嗯,我在這裏的第一篇文章並沒有像我期望的那麼糟糕。我會嘗試一下代碼,因爲它看起來很喜歡它解決了我的問題。 TNKS! – user2898733

+0

不客氣。像聲明一個變量意圖成爲一個字符串而不用引號引起來的東西總是會引起其他SO用戶的憤怒!快樂發帖。 – chiliNUT

+0

所以這一直在竊聽我@ajax333221你編輯我的帖子,包括'len = arr.length;我而不是我的'我 chiliNUT

2

給出的字符串:

var x = "1,1,0;1,0,0;1,1,1"; 

你可以得到零和一的二維數組是這樣的:

var st = x.split(";") 
var twoDimensionalArray = st.map(function(k){ 
    return k.split(","); 
}); 
當然

,由於JS方法鏈接,你可以做整個事情是這樣的:

var twoDimTable = x.split(";").map(function(k){ 
    return k.split(","); 
}); 

結果:

[ 
    ["1","1","0"], 
    ["1","0","0"], 
    ["1","1","1"] 
] 

很好,得到的結果

[ 
    [1,1,0], 
    [1,0,0], 
    [1,1,1] 
] 

你可以做一個循環,併爲數組中的每個值k做k = + k; ,你會得到數字而不是字符串。但是,當您在具有數字的操作中使用這些值時,JavaScript將爲您執行 。

+0

理論上,結果是[[「1」,「1」,「0」],...]字符串不是數字 – ajax333221

+0

'[[「1」,「1」,「1」,「1」 ,「1 1」,「0」,「1」]]'這是我的輸出,你能解釋一下嗎?修復 :) – user2898733