前言
这么生草的标题,应该就不会有人关注我了,哈哈。
前排许愿
- 若川大佬拉我进笔记群。
- 找到一份前端工作。
- 我的秘密心愿:*********************
起因
- 缘分嘛,缘分到了,就写出来了。
- 多看书,多爱护环境。
它是什么?
- 它可能是函数式风格的最佳搭配。
- 没有过程化代码,非常舒适。
主体
知识组成
- 可迭代对象
- 生成器
- 结构化对象
- 栈
- 弱引用WeakSet
知识来源
- 掘金文章 juejin.cn/post/704988… (很久以前,我反复记忆它大概5次左右,最后终于记住了,敲了很多遍demo)
- Javascript 高级程序设计概念掌握
内容
- 贴代码好了,优秀的程序员一定是读源码的(PS:楼主很懒,快来批评他)。
//核心代码
function * iteratorTree(tree){
const stack=[tree];;
let curryNode;
let set=new WeakSet();
while(stack.length>0){
curryNode=stack.pop();
if(set.has(curryNode)){
continue;
}else{
set.add(curryNode);
}
if(Array.isArray(curryNode.children)){
stack.push(...curryNode.children);
}
yield curryNode;
}
};
留言
- 核心代码给各位了,相信各位一定能够优化它。优化好了,发文章,然后把链接发到评论,互关呀。
- 有中级前端工程师需求,可以找我呀,我很努力的也很喜欢编程工作。
彩蛋
- 我在GitHub仓库里的demo留了一点小彩蛋。demo repo.
- 若川大佬公众号发送PDF,有好东西,还不马上关注。