将数组拆分为多个数组或备用 - Javascript

Posted

技术标签:

【中文标题】将数组拆分为多个数组或备用 - Javascript【英文标题】:Split array into multiple array's or alternate - 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];

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

提前致谢 马赫

【问题讨论】:

【参考方案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];

【讨论】:

Don't use var i in array syntax to iterate arrays. @Jack 你有什么建议? for(var i=0; i&lt;array.length; i++) 风格? 是的,那会更好:) 你也可以将数组长度缓存在一个局部变量中(虽然是微优化)。【参考方案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]) 的快捷方式。

以上是关于将数组拆分为多个数组或备用 - Javascript的主要内容,如果未能解决你的问题,请参考以下文章

js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip

JavaScript将数组拆分为内部的多个数组[重复]

Pyspark:将多个数组列拆分为行

Pyspark:将多个数组列拆分为行

将多个空格从文本文件拆分为数组

C#:如何将多个字符串拆分为二维数组?