用最大计数器用逗号合并数组元素

时间:2018-09-05 14:34:31

标签: javascript arrays

所以我有一个ID数组,像这样:

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];

我需要一个名为 mergeArray(arr,3) 的函数,它应返回以逗号分隔的值,最多包含3个元素,如下所示:

const newArr = ['1,2,3', '4,5,6', '7,8,9', '10,11'];

我该怎么做?如果可能,可以使用ES6函数获得更简单的代码。

4 个答案:

答案 0 :(得分:2)

将您的数组切成3个长度的数组,然后直接将它们加入

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];

const mergeArray = (arr, size) => {
  let res = [];
  for (i = 0; i < arr.length; i += size) { 
    res.push(arr.slice(i, i + size).join(','));
  }
  return res;
}

console.log(mergeArray(arr, 3));

答案 1 :(得分:1)

您可以split()将数组join()调整为特定大小,然后{{3}}将其推入结果数组:

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
var i, j, newArr=[], size = 3;
for (i=0,j=arr.length; i<j; i+=size) {
  newArr.push(arr.slice(i, i+size).join());
}
console.log(newArr);

答案 2 :(得分:0)

其中一种方法是使用Array.prototype.reduceArray.prototype.map

for( auto i = container.begin(); i != container.end(); ++i ) {
   auto val = coolValue( *i );
   ...
}

答案 3 :(得分:0)

您可以加入数组,并用正则表达式匹配所需的部分。

var data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
    result = data.join(',').match(/\d+(,\d+(,\d+)?)?/g)

console.log(result);