我在这里有点新手,所以我会直接跳到我遇到的问题的例子中:
我想转换一下:“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" |...
不幸的是,这仍然只是在同一列中返回两个字符串,所以唯一完成的是删除了额外的文本,我不知道如何创建我想要的输出数组。谢谢!
答案 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);