按字符拆分数组

时间:2015-12-04 01:18:35

标签: javascript arrays

所以我有这个类似的数组:

var arr = ['Green','Red','Silver','|','blue','Yellow']

数组将始终将字符|分开,但数组中的值将随机增加。

我想将|两侧的所有值分成两个单独的数组。

例如,我希望上面的代码输出为:

['Green','Red','Silver']
['blue','Yellow']

2 个答案:

答案 0 :(得分:4)

var arr = ['Green','Red','Silver','|','blue','Yellow']

var split1 = arr.slice(0, arr.indexOf("|"));
var split2 = arr.slice(arr.indexOf("|")+1);

答案 1 :(得分:1)

此代码能够处理两个以上的分隔符。

function splitArr(arr){
  var tmp = arr.join("|").split("||");
  var result = [];
  for(var i = 0; i < tmp.length;i++){  
    result.push(tmp[i].split("|").filter(function(e){
      return e;
    }));
  }
  return result;
}

工作演示

        var arr = ['Green','Red','Silver','|','blue','Yellow','|', 'some cool color we do not know about', 'another awesome color'];


        function splitArr(arr){
          var tmp = arr.join("|").split("||");
          var result = [];
          for(var i = 0; i < tmp.length;i++){
            result.push(tmp[i].split("|").filter(function(e){
              return e;
            }));
          }
          return result;
        }

        var newArr = splitArr(arr);
        for(var x = 0; x < newArr.length; x++){
           document.write(newArr[x]);
           document.write("<br/>");
        }