我有一个像这样的数组:
[
[ 'a', 'b', 'c', 'd' ],
[ 'h', 'i', 'j' ],
[ 'g' ],
[ 'k' ],
[ 'o', 'p' ]
]
如何从给定的输入数组创建多个数组(总共有 5 个元素)?
输出示例:
['a', 'b', 'c', 'd', 'g'],
['a', 'b', 'c', 'd', 'k'],
['h', 'i', 'j', 'g', 'k'],
['h', 'i', 'j', 'o', 'p'],
但是,元素不能分开,例如:
['a', 'h', 'i', 'j', 'g']
['a'] 元素应与 ['a', 'b', 'c', 'd'] 放在一起,不能分开。它应该使用 ['k'] 代替,因为它是单个元素。
谢谢!
最佳答案
就这样吧:)
function combineArrays(arraysArray) {
let combinedArraysArray = [];
for (let i=0; i<arraysArray.length; i++) {
for (let j=i+1; j<arraysArray.length; j++) {
if (arraysArray[i].length + arraysArray[j].length <= 5) {
let tempCombinedArray = arraysArray[i];
for (let k=j; k<arraysArray.length; k++) {
if (tempCombinedArray.length === 5) {
break;
} else if (tempCombinedArray.length + arraysArray[k].length <= 5) {
tempCombinedArray = tempCombinedArray.concat(arraysArray[k]);
}
}
if (tempCombinedArray.length === 5) {
combinedArraysArray.push(tempCombinedArray);
}
}
}
}
return combinedArraysArray;
}
关于JavaScript:将数组合并为 N 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51297449/