“扁平化”数组是指将一个多维数组转换为一个一维数组。例如,将 [[1, 2], [3, 4]]
转换为 [1, 2, 3, 4]
。相反地,“取消扁平化”数组是指将一维数组转换为多维数组,或者将一维数组转换为成对的数组。
假设我们有一个一维数组 [1, 2, 3, 4, 5, 6]
,我们希望将其转换为成对的二维数组 [[1, 2], [3, 4], [5, 6]]
。
function pairwise(arr) {
const result = [];
for (let i = 0; i < arr.length; i += 2) {
result.push([arr[i], arr[i + 1]]);
}
return result;
}
const flatArray = [1, 2, 3, 4, 5, 6];
const pairedArray = pairwise(flatArray);
console.log(pairedArray); // 输出: [[1, 2], [3, 4], [5, 6]]
假设我们有一个一维数组 [1, 2, 3, 4, 5, 6, 7, 8]
,我们希望将其转换为二维数组 [[1, 2, 3], [4, 5, 6], [7, 8]]
。
function chunkArray(arr, size) {
const result = [];
for (let i = 0; i < arr.length; i += size) {
result.push(arr.slice(i, i + size));
}
return result;
}
const flatArray = [1, 2, 3, 4, 5, 6, 7, 8];
const chunkedArray = chunkArray(flatArray, 3);
console.log(chunkedArray); // 输出: [[1, 2, 3], [4, 5, 6], [7, 8]]
解决方法:可以在函数中添加逻辑来处理这种情况。例如,如果数组长度不是偶数,可以将最后一个元素单独作为一个数组。
function pairwise(arr) {
const result = [];
for (let i = 0; i < arr.length; i += 2) {
if (i + 1 < arr.length) {
result.push([arr[i], arr[i + 1]]);
} else {
result.push([arr[i]]);
}
}
return result;
}
const flatArray = [1, 2, 3, 4, 5];
const pairedArray = pairwise(flatArray);
console.log(pairedArray); // 输出: [[1, 2], [3, 4], [5]]
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云