【问题标题】:Convert a 1D array of strings into a 2D array将一维字符串数组转换为二维数组
【发布时间】:2016-03-08 01:42:30
【问题描述】:

我在这里有点新手,所以我将直接进入我遇到的问题的示例:

我想转换这个:“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;
  }
}`

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

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

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

【问题讨论】:

  • 您会在.split() 方法中找到价值。
  • 嗨,marty,我也一直在尝试,但我仍然遇到类似的问题:如何将 1D 数组排序为 2D 输出数组?另外,如何在 cmets 中进行“编码”?

标签: javascript arrays google-sheets


【解决方案1】:

给你:

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"]
]

【讨论】:

  • 哇,这完全奏效了,我真的很难掌握数组并操纵它们。非常感谢!
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多