Javascript 如何将以下字符串拆分为二维数组:

Javascript 如何将以下字符串拆分为二维数组:,javascript,arrays,split,Javascript,Arrays,Split,如何将以下字符串拆分为二维数组: Customer::Europe|UK|Scotland|Product::Drinks|Water| 数组: [Customer][Europe] [Customer][UK] [Customer][Scotland] [Product][Drinks] [Product][Water] 不确定如何创建数组。已经好几年没有编码了,所以要友善 hArray= []; vArray= []; var i

如何将以下字符串拆分为二维数组:

Customer::Europe|UK|Scotland|Product::Drinks|Water| 
数组:

[Customer][Europe] 
[Customer][UK] 
[Customer][Scotland] 
[Product][Drinks] 
[Product][Water]
不确定如何创建数组。已经好几年没有编码了,所以要友善

        hArray= [];
        vArray= [];
        var i = j = 0;
        var count = hierarchy.search(/[:|]+/);
            write(hierarchy);
        while (count > 0) {

                  if (hierarchy.indexOf(":") < hierarchy.indexOf("|")  || (hierarchy.indexOf(":") > 0 && hierarchy.indexOf("|") == -1) ) {
                      hArray[j] = hierarchy.substr(0,hierarchy.indexOf(":"));
                      hierarchy = hierarchy.slice(hierarchy.indexOf(":")+2); 
                      count = hierarchy.search(/[:|]+/);
                      j++;
                      } else 
                        if (hierarchy.indexOf("|") < hierarchy.indexOf(":")  {
                            vArray[i] = hierarchy.substr(0,count); 
                             hierarchy = hierarchy.slice(count+1); 
                             count = hierarchy.search(/[:|]+/);
                             i++;
                      }           
                    if (count == -1) break;
哈雷=[]; vArray=[]; var i=j=0; var count=hierarchy.search(/[:|]+/); 写入(层次结构); 而(计数>0){ if(hierarchy.indexOf(“:”)0&&hierarchy.indexOf(“|”)=-1)){ hArray[j]=hierarchy.substr(0,hierarchy.indexOf(“:”); hierarchy=hierarchy.slice(hierarchy.indexOf(“:”)+2); count=hierarchy.search(/[:|]+/); j++; }否则 if(hierarchy.indexOf(“|”) //创建多阵列?
}

var source=“客户::欧洲|英国|苏格兰|产品::饮料|水|”;
var parts=source.split(/(\w+:)/);
var结果=[];
对于(变量i=1;iconsole.log(result);
您可以像这样使用
数组。reduce
如下。首先,我们在任何owrd后面的
|
上进行拆分,后跟
::
。然后,我们使用数组作为备注,并将一个数组推送到备注中,最后返回

var arr = input.split(/\|(?=\w+::)/).reduce(function(arr, str){
    var array = str.split('::');
    return arr.push(str.split('::')[1].split('|').filter(String).map(function(s){  
       return [array[0], s]         
    })), arr;
}, []);

展示你没有做对的事情