效果图:一维数组转成二维数组
效果图:二维数组转成一维数组
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>js将一维数组转化为二维数组、二维数组转化为一维数组</title> </head> <body> </body> <script> // 调用 // let list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] let list = [{ id: '1', name: '一', }, { id: '2', name: '二', }, { id: '3', name: '三', }, { id: '4', name: '四', }, { id: '5', name: '五', }, { id: '6', name: '六', }, { id: '7', name: '七', }, { id: '8', name: '八', }, { id: '9', name: '九', }, { id: '10', name: '十', }, { id: '11', name: '十一', }, { id: '12', name: '十二', }, ] console.log(list, '全部数据') joinWayArray(list); // 转化函数 function joinWayArray(list) { const listResult = []; // 最终返回的二维数组 for (let i = 0; i < Math.ceil((list.length / 10)); i++) { listResult[i] = []; for (let j = 0; j < 10; j++) { // 如果是最后一个板块 if (i === (Math.ceil((list.length / 10)) - 1)) { if (Math.ceil((list.length % 10)) !== 0) { // 只有最后一个板块的数据在余数以内的才赋值 if (j < Math.ceil((list.length % 10))) { listResult[i][j] = list[i * 10 + j]; } } else { // 如果刚好整整一个板块,则全部附上值 listResult[i][j] = list[i * 10 + j]; } } else { listResult[i][j] = list[i * 10 + j]; } } } console.log(listResult, '转化十个为一组后的数据') return listResult; } //二维数组转一维数组 // let arr = [ // ['一', '二'], // ['三', '四'], // ['五', '六'] // ]; let arr = [ [ { id: 1, name: '一', }, { id: 2, name: '二', }, ], [ { id: 3, name: '三', }, { id: 4, name: '四', }, ], [ { id: 5, name: '五', }, { id: 6, name: '六', }, ], ]; console.log('二维数组:', arr); let newarr = []; for (const item of arr) { newarr = [...newarr, ...item]; } console.log('一维数组:', newarr); </script> </html>