1.手写flat 方法
<!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 = [[9], [8, [9]], [7, [99, [7, [12, [1], [33]]]]], 1, [2, [3, [4, [5]]]]];
// arr.flat(Infinity) Infinity 表示扁平化任意深度
// 第二种方法
function flat(arr) {
return arr.reduce((acc,cur)=> acc.concat(Array.isArray(cur)? flat(cur) :cur),[])
}
const newArr = flat(arr)
console.log(newArr)
</script>
</body>
</html>
第一种方法: arr.flat(Infinity) Infinity 表示扁平化任意深度
第二种方法: 利用reduce累加器 自己调用自己
2.polyfill
(1) 手写filter polyfill