【问题标题】:how to make string as array in java script?如何在javascript中将字符串作为数组?
【发布时间】:2012-02-04 02:48:51
【问题描述】:

我有一个字符串值,例如:

1,2,3;4,5,6;7,8,9;a,b,c;d,e,f;g,h,i

我需要将它转换成 JavaScript 中的数组,比如

1 2 3

4 5 6 

7 8 9

etc.

谁能给我建议一下如何做到这一点?

【问题讨论】:

标签: javascript arrays string-split


【解决方案1】:

您正在寻找String.split。在您的情况下,您需要拆分两次。一次使用; 将字符串拆分为块,然后分别使用, 拆分每个块以达到您要查找的数组结构。

function chunkSplit(str) {
    var chunks = str.split(';'), // split str on ';'
        nChunks = chunks.length, 
        n = 0;

    for (; n < nChunks; ++n) { 
        chunks[n] = chunks[n].split(','); // split each chunk with ','
    }

    return chunks;
}

var arr = chunkSplit("1,2,3;4,5,6;7,8,9;a,b,c;d,e,f;g,h,i");

【讨论】:

  • 第一个“;”到底是什么在for (; n &lt; nChunks; ++n) { 行中?是那里找到字符“;”。我问是因为我通常在“;”之前看到某种表达在 for 循环中
【解决方案2】:

如果需要多维数组可以试试:

var array = yourString.split(';');

var arrCount = array.length;
for (var i = 0; i < arrCount; i++)
{
  array[i] = array[i].split(',');
}

【讨论】:

    【解决方案3】:

    尝试以下方法:

    var yourString = '1,2,3;4,5,6;7,8,9;a,b,c;d,e,f;g,h,i';
    var array = [];
    yourString.split(';').forEach(function(value) {
      array.push(value.split(','));
    });
    

    【讨论】:

    • 这不起作用。你甚至尝试过运行你的代码吗? for...in 循环中 split 的值是数组中的索引,而不是值。
    • 可能值得一提的是Array.forEach 没有通用浏览器支持。 kangax.github.com/es5-compat-table
    【解决方案4】:

    以下拆分命令应该会有所帮助:

     yourArray = yourString.split(";");
    

    【讨论】:

    • 注意还有逗号。看起来 OP 想再次拆分结果以获得二维数组。
    猜你喜欢
    • 2015-11-11
    • 2011-05-02
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2022-11-29
    • 2015-10-26
    • 1970-01-01
    相关资源
    最近更新 更多