2015-05-08 30 views
1

如何將「000000111111111110000000000000000000000001111111」轉換爲像[0,0,0,...,1,1]這樣的數字數組。轉換數組01010中的字符串

我曾嘗試沒有成功:

eval('[' + string + ']') 

JSON.parse('[' + string + ']') 
+1

遍歷它們,並將它們推到一個數組。 – gin93r

回答

0

可以通過串環路與for和推每個數字到陣列:

var ar = [] 
for(var i=0; i< string.length;i++) 
    ar.push(string[i] * 1) 

JSFiddle

2

這樣的事情應該工作。

var a = []; 
var s = "000000111111111110000000000000000000000001111111"; 
for(var i=0; i<s.length; i++) 
{ 
    a.push(parseInt(s[i],10)); 
} 
+0

'parseInt'應該有一個基數,分割是不必要的。 – ssube

+0

@ssube謝謝!更新。 – gin93r

+0

我在那裏有一個拼寫錯誤...我有'parseInt(a [i],10)'而不是'parseInt(s [i],10)' – gin93r

0

可以使用循環遍歷每個字符或分割字符串。一旦你把它分解了,你需要使用parseInt(確保包含一個基數)將每個元素轉換爲一個數字。

var data = "000000111111111110000000000000000000000001111111"; 
 
var nums = data.split('').map(function(it) { 
 
    return parseInt(it, 10); 
 
}); 
 

 
document.getElementById('results').textContent = JSON.stringify(nums);
<pre id="results"></pre>

如果你願意,你可以在map後用filter來刪除不01任何元素。

1

使用String.split()方法。

var str = "000000111111111110000000000000000000000001111111"; 
var arr = str.split(""); 

for (num in arr){ 
    num = Number(num); 
} 
+0

Sweet answer bro – user1823

1

您可以使用字符串作爲字符數組,您可以使用+將字符串轉換爲int。

var str = "110100010010011000101010101001"; 

var arr = []; 
for(var idx in str) 
    arr.push(+str[idx]); 

// proof 
console.log(arr); 

http://jsfiddle.net/4v5qysnv/