- 使用数组的新方法flat,传入Infinity 实现无线嵌套
[1, [2, [{name: "love"}]]].flat(Infinity)
- 如果不兼容就用reduce
function flatten(arr) {
return arr.reduce((result, item) => {
return result.concat(Array.isArray(item) ? flatten(item) : item);
}, []);
}
- 实现数组查找符合第一个规则的find 函数
Array.prototype.find = function (fn) {
for (let i = 0; i < this.length; i++) {
if (fn(this[i])) return this[i]
}
}
console.log([1, [2, [{name: "love"}]]].flat(Infinity));