【问题标题】:Javascript string to 2 dimensional arrayJavascript字符串到二维数组
【发布时间】:2012-09-23 22:35:16
【问题描述】:

好吧,我已经尝试了很多不同的方法来让它发挥作用。

我需要一个用逗号分隔的字符串到一个二维数组中......例如:

string = "a,b,c,d,e,1,2,3,4,5";
array = [['a','1'],['b','2'],['c','3'],['d','4'],['e','5']];

这是我一直在调整的代码。

var temp = list.split(',');
questions = [[''],[''],[''],[''],['']];
five = 0;
one = 0;
for(var i = 0; i < temp.length; i++) {
    if(one == 5){five++; one = 0;}
    one++;
    questions[one][five] = temp[i];
}

btw list = "a,b,c,d,e,1,2,3,4,5"。

先谢谢了!!!

【问题讨论】:

    标签: javascript arrays string multidimensional-array


    【解决方案1】:

    我建议采用稍微不同的方法,避免(在我看来过于)复杂的 for 循环内部结构:

    var string = "a,b,c,d,e,1,2,3,4,5",
        temp = string.split(','),
        midpoint = Math.floor(temp.length/2),
        output = [];
    
    for (var i=0, len=midpoint; i<len; i++){
        output.push([temp[i], temp[midpoint]]);
        midpoint++;
    }
    
    console.log(output);
    

    JS Fiddle demo.

    【讨论】:

    • 这看起来不错,但我打算在那个字符串中添加更多的五分(五分的数量会增加)......但无论如何,谢谢我可能会使用其中的一些。
    • 那么字符串会是什么样子,您希望结果是什么? (我问更多是出于好奇,因为我对挑战感到好奇,而不是其他任何原因。)
    • 字符串可以是任意大小,因为程序让您创建它。因此,有人可以根据需要添加任意数量,但它总是以五个为单位。
    【解决方案2】:

    好的,所以在我问问题之前我已经修复了它......但我做了很多工作,我还是会发布它。

    这是我现在可以使用的代码:

        var temp = list.split(',');
    
    questions = [[],[],[],[],[]];
    
    for(var i = 0; i < temp.length; i++) {
        questions[i%5][Math.floor(i/5)] = temp[i];
        one++;
    }
    

    谢谢巴尔玛!!!

    【讨论】:

    • 您不需要 3 个变量。 questions[Math.floor(i/5)][i%5] = temp[i];
    • 谢谢你,我开始尝试做这样的事情,但我做错了,效果很好!
    猜你喜欢
    • 1970-01-01
    • 2021-06-12
    • 2019-09-14
    • 1970-01-01
    • 2020-09-02
    • 2020-09-15
    • 2016-05-06
    • 2019-01-23
    • 2012-01-25
    相关资源
    最近更新 更多