效果图:一维数组转成二维数组
效果图:二维数组转成一维数组
<!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>