Javascript-将元素数组转换为数组块

Javascript - convert array of elements to array blocks

本文关键字:数组 转换 Javascript- 元素      更新时间:2023-09-26

所以我有一个javascript变量,看起来像这个

D,CPU_Purchased_ghz,2015-03-19 00:00:00,10.00,2015-03-20 00:00:00,10.00

有可能分裂成这样的阵列吗:

[
    [D,CPU_Purchased_ghz],
    [2015-03-19 00:00:00,10.00],
    [2015-03-20 00:00:00,10.00]
]

即。我希望能够将其拆分为2个的块

这个小函数将数组分块为指定大小的块:

var chunk = function (chunkSize, array) {
  var chunked = []
  var from
  for (var i = 0, range = array.length / chunkSize; i < range; i++) {
    from = i * chunkSize
    chunked.push(array.slice(from, from + chunkSize))
  }
  return chunked
}
// Usage:
chunk(3, [1, 2, 3, 4, 5])
// -> [[1, 2, 3], [4, 5]]

如果您使用的变量实际上是一个数组:

var arr1 = [ "D", "CPU_Purchased_ghz", "2015-03-19 00:00:00", 10.00, "2015-03-20 00:00:00", 10.00 ];
var arr2 = [];
for(var i=0, l=arr1.length; i<l; i++){
    arr2.push( [arr1[i], arr1[++i]] );
}
console.log(arr2); // Outputs [ ["D","CPU_Purchased_ghz"], ["2015-03-19 00:00:00",10.00], ["2015-03-20 00:00:00",10.00] ]

JS Fiddle演示

(有关阵列解决方案,请参见编辑

这可以用正则表达式很好地完成

var arr = aString.match(/[^,]+,[^,]+/g);

其中aString包含您的字符串。

退货:

[
    "D,CPU_Purchased_ghz", 
    "2015-03-19 00:00:00,10.00", 
    "2015-03-20 00:00:00,10.00"
]

JSFiddle

编辑:我刚刚收到通知,变量可能是数组,而不是字符串。如果确实是这样的话,只需先加入数组:

var arr = aArray.join(',').match(/[^,]+,[^,]+/g);

JsFiddle for array