三道js手写题的思路和代码实现
数组扁平化
演示效果
将[1, 1, 2, [1, 2]] 变成 1, 1, 2, 1, 2
第一种: 直接使用.flat
console.log([1, [1,2],[...1,[2]]].flat(3));
可以将多维数组,降维,传的参数是多少就降多少维
一般直接传参数为 Infinity(简单粗暴) 第二种: 递归方法的方法 + 借用数组的API完成
(1)
function...(即其自身定义的属性,而不是其原型链上的枚举属性)将为新创建的对象添加指定的属性值和对应的属性描述符。...,其中的键是弱引用对象,而值可以是任意。...,必须是一个函数,
// 另外判断是否是object这块递归的去找对象中是否还存在函数,如果不是函数,
// 自定义事件没有回调肯定是不行的
return isValidListener