【问题标题】:Split array into multiple array's or alternate - Javascript将数组拆分为多个数组或备用 - Javascript
【发布时间】:2013-02-06 13:43:16
【问题描述】:

我有一个数组

var array = ['123.456789,123.1','456.7890123,234.1','789.0123456,345.1'];

我正在寻找的结果是

var array1 = [123.456789,456.7890123,789.0123456];
var array2 = [123.1,234.1,345.1];

这样做的最佳做法是什么? 我一直在看 。分裂(””); 但想知道最好的方法。

提前致谢 马赫

【问题讨论】:

    标签: javascript jquery arrays object var


    【解决方案1】:

    我认为你应该使用 split 功能。试试这个或看看这个DEMO

    var array = ['123.456789,123.1','456.7890123,234.1','789.0123456,345.1'];
    var array1 = [], array2 = [];
    
    for(var i=0; i<array.length; i++){
       array1[i] = array[i].split(",")[0];
       array2[i] = array[i].split(",")[1];
    }
    

    【讨论】:

    【解决方案2】:

    基本上,您应该遍历数组,并根据逗号将每个项目的字符串分成两部分。每个部分进入各自的数组。

    如果Array.forEach() 被允许:

    var a1 = [], a2 = [];
    
    array.forEach(function(item) {
      var parts = item.split(',');
      a1.push(+parts[0]);
      a2.push(+parts[1]);
    }
    

    否则:

    var a1 = [], a2 = [];
    
    for (var i = 0, item; item = array[i]; ++i) {
      var parts = item.split(',');
      a1.push(+parts[0]);
      a2.push(+parts[1]);
    }
    

    【讨论】:

    • 在您的情况下,最好使用Array.forEach
    • @VisioN 不记得以前用过...啊是的,那好多了:)
    【解决方案3】:
    var arr = ["123.456789,123.1","456.7890123,234.1","789.0123456,345.1"];
    
    var array1 = [],
        array2 = arr.map(function(e) {
            e = e.split(",");
            array1.push(+e[0]);
            return +e[1];
        });
    
    console.log(array1, array2);
    

    【讨论】:

    • 为什么在 +e[0] 中有加号?和演员表一样吗?
    • @letiagoalves 是的,这是Number(e[0]) 的快捷方式。
    猜你喜欢
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    相关资源
    最近更新 更多