在数组中转换01010字符串

时间:2015-05-08 15:24:35

标签: javascript arrays string

如何转换" 000000111111111110000000000000000000000001111111"成为一组数字,如[0,0,0,...,1,1]。

我尝试过没有成功:

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

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

5 个答案:

答案 0 :(得分:2)

这样的事情应该有效。

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

答案 1 :(得分:1)

使用String.split()方法。

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

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

答案 2 :(得分:1)

您可以将字符串用作字符数组,并且可以使用+将字符串转换为int。

var str = "110100010010011000101010101001";

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

// proof
console.log(arr);

http://jsfiddle.net/4v5qysnv/

答案 3 :(得分:0)

您可以使用for循环遍历字符串并将每个数字推送到数组:

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

JSFiddle

答案 4 :(得分:0)

您可以使用循环迭代每个字符或拆分字符串。在您将其分解后,您需要使用parseInt将每个元素转换为数字(确保包含基数)。

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

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

如果需要,可以在filter之后使用map删除任何非01的元素。