javascript拆分而不丢失第一个元素(不是RegEx)

时间:2013-10-19 20:51:46

标签: javascript split

我有一个字符串,其中包含由“,”和“;”分隔的1和0。

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

这将输出一个只有两个字符串的数组:1,0,0和1,1,1 我想要的是将所有这些数字放在一个二维数组中:
1 1 0
1 0 0
1 1 1
如果有一种更聪明的方式而不仅仅是拆分弦乐,请告诉我 否则,请告诉我如何解决上述问题。

2 个答案:

答案 0 :(得分:5)

  1. 您需要在字符串周围加上引号。
  2. 评论者是正确的,您的数组包含所有3个字符串。你忘记了数组索引从0开始,而不是1?
  3. x.split不修改x,它返回一个数组
  4. 你可能想要这样的东西

        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>");
        }
    

答案 1 :(得分: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会进行转换 当您在具有数字的操作中使用这些值时,为您服务。