所以我有一个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函数获得更简单的代码。
答案 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.reduce
和Array.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);