使用split

时间:2016-07-26 01:09:53

标签: javascript arrays split

我需要将字符串拆分为两级数组(或者更确切地说是内部数组和使用自动键的数组)。

说出字符串是:
项目10~项目11~项目12 ^项目20~项目21~项目23 ^

我希望它具有类似的结构 我知道php - hense结构

array(
 [0]=> array(
   'item 10',
   'item 11',
   'item 12',
 ),
 [1]=> array(
   'item 20',
   'item 21',
   'item 22',
 ),
)

所以...
第一次拆分看起来是这样吗?

function createDataArray(xData) {
    xData.split("^");
    --- WHAT DO I DO HERE? ---

}

非常感谢您的帮助

4 个答案:

答案 0 :(得分:1)

是的,你可以使用splitArray.reduce来提出你的输出:



var input = 'item 10~item 11~item 12^ item 20~item 21~item 23^';
var splits = input.split(/\^\s*/).reduce(function(arr, item) {
  if (item.length) {
    arr.push(item.split('~'));
  }
  return arr;
}, []);
console.log(splits);




答案 1 :(得分:1)

另一种方法是进行拆分,然后进行地图+拆分:

var result = input
  .split('^')                                        // Is an array of strings
  .map(function (str) { return str.split('~'); });   // Is an array of arrays

答案 2 :(得分:1)

您可以这样做,以获得所需的输出。

var str = 'item 10~item 11~item 12^ item 20~item 21~item 23^';

var arr = [];
str.split('^').forEach(function(v) {
  if (v) {
    arr.push(v.trim().split('~'));
  }
});

console.log(arr);

答案 3 :(得分:1)

根据您的示例:

        function createDataArray(xData) {
            var q = xData.split("^"); //arr of arr
            for (var i in q) {
                q[i] = q[i].split('~');
            }
            console.log(q);
        }