将一维字符串数组转换为二维数组

时间:2016-03-08 01:42:30

标签: javascript arrays google-sheets

我在这里有点新手,所以我会直接跳到我遇到的问题的例子中:

我想转换一下:“cat@dog%arm@hand%tree@apple...

进入这个:

cat | dog
arm | hand
tree| apple
..etc

如电子表格中的2列或2D数组。使用隔离字符串并不困难,正是数组操作让我感到难过。

这是一次尝试:“

function key_abb(input) {
  if(input.map) { 
    return input.map(key_abb);
  }else {
    var temp = input.toString();
    temp = temp.replace("abbreviated-name=", "");
    temp = temp.replace("name=", "");
    return temp;
  }
}`

输入是一个输入范围,其格式如下:

|abbreviated-name="cat"  name="dog"  |
|abbreviated-name="arm"  name="hand" |...

不幸的是,这仍然只是在同一列中返回两个字符串,所以唯一完成的是删除了额外的文本,我不知道如何创建我想要的输出数组。谢谢!

2 个答案:

答案 0 :(得分:2)

你走了:

var str = 'cat@dog%arm@hand%tree@apple';
var data = str.split('%');

for (var i = 0; i < data.length; i++) {
    data[i] = data[i].split('@');
}
    
console.log(data);

结果:

[
    ["cat", "dog"],
    ["arm", "hand"],
    ["tree", "apple"]
]

答案 1 :(得分:1)

以下是使用Array.map()的另一个选项:

var str = 'cat@dog%arm@hand%tree@apple';
var data = str.split('%').map(function(item) {
  return item.split('@');
});
    
console.log(data);