将数组拆分为多个数组或备用 - 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 usevar i in array
syntax to iterate arrays.
@Jack 你有什么建议? for(var i=0; i<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的主要内容,如果未能解决你的问题,请参考以下文章