问题
用 js 实现一维数组转化为二维数组
分析
1. for 循环 + slice 方法
使用 JavaScript 的循环和 slice 方法来将数组 [160, 20, 179, 10, -170, -20] 转化为 [[160, 20], [179, 10], [-170, -20]]。以下是一个示例代码:
const arr = [160, 20, 179, 10, -170, -20];
const result = [];
for (let i = 0; i < arr.length; i += 2) {
result.push(arr.slice(i, i + 2));
}
console.log(result); // 输出转化后的数组
在上述代码中,通过循环遍历原始数组,每次取两个元素并使用 slice 方法将其组成一个新的子数组,然后将子数组添加到结果数组中。
最后,通过 console.log 输出转化后的数组 result。
2. flatMap 方法
用 flatMap 方法来简化将数组 [160, 20, 179, 10, -170, -20] 转换为 [[160, 20], [179, 10], [-170, -20]] 的过程。以下是使用 flatMap 的示例代码:
const arr = [160, 20, 179, 10, -170, -20];
const result = arr.flatMap((value, index, array) => {
if (index % 2 === 0) {
return [array.slice(index, index + 2)];
}
return [];
});
console.log(result); // 输出转化后的数组
在上述代码中,我们使用 flatMap 方法来遍历原始数组 arr。在回调函数中,我们检查当前元素的索引是否为偶数,如果是,则使用 slice 方法将当前元素和下一个元素组成一个子数组,并返回该子数组。如果索引为奇数,则返回一个空数组。
最后,通过 console.log 输出转化后的数组 result。