非静态访问父母
无符号 用于用一叠父母来行走树.
目录
这是什么?
这是与无主合作的非常重要的用途,因为它让你走 树.
我什么时候用这个?
想要行走树并想知道情况时可以使用此工具
每个节点的每个家长.
你用得着 unist-util-visit 如果你不介意的话
整个一叠父母.
安装
这个软件包是 仅限无害环境管理。 。 。 . 在Node.js(第16版+)中,安装为 无数字 :
npm install unist-util-visit-parents
在德诺与 esm.sh数字 :
import {visitParents} from 'https://esm.sh/unist-util-visit-parents@6'
在浏览器中 esm.sh数字 :
<script type="module">
import {visitParents} from 'https://esm.sh/unist-util-visit-parents@6?bundle'
</script>
使用
import {visitParents} from 'unist-util-visit-parents'
import {fromMarkdown} from 'mdast-util-from-markdown'
const tree = fromMarkdown('Some *emphasis*, **strong**, and `code`.')
visitParents(tree, 'strong', function (node, ancestors) {
console.log(node.type, ancestors.map(ancestor => ancestor.type))
})
仪:
strong ['root', 'paragraph']
API 密码
此软件包导出标识符 CONTINUE, (中文(简体) ),
EXIT, (中文(简体) ), SKIP,以及 visitParents。 。 。 .
没有默认导出 .
visitParents(tree[, test], enter|visitors[, reverse])
访问节点,有祖传信息.
此算法执行 深度第一个 树倒转
内 预排序 (单位:千美元)NLR 语言)或者,如果 reverse 给予,
内 倒转前序 (单位:千美元)无) (中文(简体) ).
一个 exit 来人了 邮购 (单位:千美元)LRN 语言(中文(简体) )
或如果 reverse 以 倒转后序 (单位:千美元)民族解放军) (中文(简体) ).
您可以通过通过一个 test。 。 。 .
对于复杂的测试,你应该测试 自己在访客,因为它将是
更快,并将改进类型信息.
走出这棵树是一项艰巨的任务.
尽可能使用访客的返回值.
而不是走一棵树多次,走一次,使用
unist-util-is 来检查节点是否匹配,然后执行
不同的操作.
汝能更树.
在一个节点内部的改变 当进入它走,
退出时所做的更改.
见 Visitor 财务报告和审定财务报表 VisitorExit 为了更多
信息输入.
签署
visitParents(tree[, test], enter[, reverse])visitParents(tree[, test], visitors[, reverse])
参数
tree(单位:千美元)Node(中文(简体) ) - 树到穿行test(单位:千美元)Test,可选) —— 说unist-util-is- 兼容测试enter(单位:千美元)Visitor(中文(简体) ) ——在输入时处理每个节点visitors(单位:千美元)Visitors(中文(简体) ) - 退出时处理每个节点, 在进入时可以任意选择reverse(单位:千美元)boolean,默认值 :false(中文(简体) ) 儿童从最后步行到第一; 页:1enter,倒转前序(NRL)而不是前序(NLR); 页:1exit,倒转后序(RLN)而不是后序(LRN)
回返
无undefined) (中文(简体) ).
CONTINUE
继续正常地转弯( E)true) (中文(简体) ).
EXIT
立即停止横行(false) (中文(简体) ).
SKIP
不要穿过这个节点的孩子('skip') (中文(简体) ).
只有在进入节点时才有效.
Action
动作类型的结合(TypeScript type).
类型
type Action = typeof CONTINUE | typeof EXIT | typeof SKIP
ActionTuple
列出一个或两个值, 第一个是动作, 第二个是索引 (简体中文).
类型
type ActionTuple = [
(Action | null | undefined | void)?,
(Index | null | undefined)?
]
BuildVisitor
构建已键入 Visitor 函数来自树和测试(TypeScript类型).
将推断哪些价值观是 node 以及作为 parents。 。 。 .
类型参数
回返
Visitor。 。 。 .
BuildVisitors
构建已输入 Visitors 从树和测试( TypeScript)
类型).
将推断哪些价值观是 node 以及作为 parents。 。 。 .
类型参数
回返
Visitors。 。 。 .
Index
移动到兄弟会 index 下一个( 节点本身是完全的)
transversed (TypeScript类型).
如果树变异, 如删除节点, 访问者目前有用
或之前的兄弟姐妹们.
成果低于 0 大于或等于 children.length 停下来
绕道父母.
类型
type Index = number
Test
unist-util-is 兼容测试(TypeScript type).
Visitor
处理节点( 匹配) test,如果给出),在孩子之前(TypeScript)
类型).
内部变化 node 接下来是步行.
替换或去除在 exit。 。 。 .
当替换或移出这里时,
返回时 SKIP (否则它的孩子就会被送走),
或者说 [SKIP, index] 以继续当前节点 index。 。 。 .
换下一位兄弟姐妹(按步行顺序排列)很好;
改变前兄弟姐妹需要一个新的 Index。 。 。 .
不支持删除祖先或改变其前兄弟姐妹.
参数
node(单位:千美元)Node(中文(简体) ) ——找到节点parents(单位:千美元)Array<Node>(中文(简体) ) - 祖辈辈辈nodeindex(单位:千美元)number或者说undefined(中文(简体) ) ——指数node在其父母中(其中最后一个)parents, (中文(简体) ), 或者说undefined对于树本身
回返
下一步怎么办VisitorResult) (中文(简体) ).
传出一圈回(ActionTuple只有这样才有意义
[SKIP, Index]。 。 。 .
VisitorExit
处理节点( 匹配) test,如果给出)在其子后(TypeScript类型).
内部变化 node 没有走路,
使这里成为改变的好地方 node 根据其子女,
或替换或删除.
删除时 node 或改变以前的兄弟姐妹(按步行顺序排列),
返回一个新的 Index。 。 。 .
不支持删除祖先或改变其前兄弟姐妹.
参数
node(单位:千美元)Node(中文(简体) ) ——找到节点parents(单位:千美元)Array<Node>(中文(简体) ) - 祖辈辈辈nodeindex(单位:千美元)number或者说undefined(中文(简体) ) ——指数node在其父母中(其中最后一个)parents, (中文(简体) ), 或者说undefined对于树本身
回返
下一步怎么办VisitorResultExit) (中文(简体) ).
CONTINUE (单位:千美元)true就一直保持正常状态,
EXIT (单位:千美元)false停止横行,
财务报告和审定财务报表 Index 继续在那兄弟会.
VisitorResult
输入访问者可以返回的任何值( TypeScript 类型) .
喜欢 VisitorResultExit 不过 SKIP 可返回到
绝不是结点的子孙所行走的,
财务报告和审定财务报表 ActionTuple 用于将动作和
指数.
类型
type VisitorResult =
| Action
| ActionTuple
| Index
| null
| undefined
| void
VisitorResultExit
从退出访问者(TypeScript类型)返回的任何值.
类型
type VisitorResultExit = Index | boolean | null | undefined | void
Visitors
进出时处理节点(TypeScript类型).
这个 enter 访问者是可选的,而 exit 需要时间.
通过一个 enter 访问者直接只处理输入时的节点.
enter 在儿童(如果有的话)步行之前 exit 后说.
exit 仍然叫当 enter 返回时 SKIP。 。 。 .
两者 enter 财务报告和审定财务报表 exit 仅需要匹配可选的节点 test。 。 。 .
字段
enter(单位:千美元)Visitor,可选) - 在孩子面前处理一个节点exit(单位:千美元)VisitorExit(中文(简体) ) - 在孩子后处理一个节点
类型
此软件包已全部输入 类型脚本。 。 。 .
出口其他类型 Action, (中文(简体) ),
ActionTuple, (中文(简体) ),
BuildVisitor, (中文(简体) ),
BuildVisitors, (中文(简体) ),
Index, (中文(简体) ),
Test, (中文(简体) ),
Visitor, (中文(简体) ),
VisitorExit, (中文(简体) ),
VisitorResult, (中文(简体) ),
VisitorResultExit,以及
Visitors。 。 。 .
兼容性
由统一集体管理的项目与维持的项目兼容 (原始内容存档于2018-10-21). Executive of Node.js.
当我们剪下新的主要版本时,我们放弃了对未维护版本的支持
节点.
这意味着我们试图保持目前的释放线,
unist-util-visit-parents@^6,与Node.js 16相兼容.
相关
unist-util-visit- 和父母一起走树unist-util-filter——创建一棵有所有节点通过测试的新树unist-util-map——创建由给定函数映射出所有节点的新树unist-util-flatmap—— 通过映射( 到数组) 给定函数创建新树unist-util-remove- 从通过测试的树上去掉节点unist-util-select—— 选择带有类似 CSS 选择器的节点
贡献
见 contributing.md 内 syntax-tree/.github 页:1
开始的方法.
见 support.md 为了寻求帮助.
这个项目有一个 行为守则。 。 。 . 通过与这个寄存器,组织或社区的互动,你同意 遵守它的规定.