需求是将一个嵌套的二维数组扁平化,具体见代码。
通过两个forEach已经实现了需求。
但我还是想请教一下各位大佬,通过解构是否能实现?或者各位大佬有什么更简的写法,请交流指教,感谢。
[JavaScript] 纯文本查看 复制代码 <!DOCTYPE html>
<html lang="en">
<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>Document</title>
</head>
<body>
<script>
// 原始数据时这样的
const arr = [
[
{ key: 'arrNoBasic', text: '未达基准值' },
{ key: 'arrBasic', text: '达基准值未达挑战值' },
{ key: 'arrChallenge', text: '达挑战值' }
], [
{ key: 'arrNice', text: '排名靠前' },
{ key: 'arrBad', text: '排名靠后' }
], [
{ key: 'arrToNice', text: '环比改善' },
{ key: 'arrToBad', text: '环比劣化' },
{ key: 'arrFocus', text: '需重点关注' }
]
];
// 希望扁平化数组,转为这样
// const arrReady = [
// { key: 'arrNoBasic', text: '未达基准值' },
// { key: 'arrBasic', text: '达基准值未达挑战值' },
// { key: 'arrChallenge', text: '达挑战值' },
// { key: 'arrNice', text: '排名靠前' },
// { key: 'arrBad', text: '排名靠后' },
// { key: 'arrToNice', text: '环比改善' },
// { key: 'arrToBad', text: '环比劣化' },
// { key: 'arrFocus', text: '需重点关注' }
// ];
console.log('尝试解构1', ...arr)
console.log('尝试解构2', [...arr])
console.log('尝试解构3', [...[...arr]])
// 循环方法
let arrReady = [];
arr.forEach(element => {
element.forEach(e => {
arrReady.push(e)
});
});
console.log('arrReady', arrReady);
</script>
</body>
</html>
|