2015-05-08 28 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/