foreach 与 for....in...与 for....of.... 区别
for..in 循环遍历的值都是数据结构的键值(key)(数组与对象都可使用,但更适合对象遍历)
for...of (ES6) 循环获取一对键值对中的值(value)
forEach 和 map 区别
相同点:1.都是循环遍历数组中的每一项
2.forEach和map方法里每次执行匿名函数都支持3个参数,(item,index,arr)
3.匿名函数中的this都指向window
4.只能遍历数组
5.都有兼容问题
不同点:1.map速度比foreach快
2.map会返回一个新数组,不对原数组产生影响,foreach不会产生新数组
3.map因为返回数组所以可以链式操作,foreach不能
JS扁平化数组
迭代递归方式
function flatten(arr,result = []){
for(let item of arr){
if(Array.isArray(item)){