【发布时间】:2020-06-15 21:56:41
【问题描述】:
假设这个(伪代码)
{a} -> {b} -> {c}
a.parent = { next: null, methods: {
someMethod() {}
}}
b.parent = { next: a, methods: {
someOtherMethod1() {},
someMethod2() {},
}}
c.parent = { next: b, methods: {
anotherMethod() {},
}}
现在假设这个链的深度是可变的。从c,我想访问someMethod,这是methods 的a 上的一个属性
所以我可以这样做:(伪代码)
let resNode
while (node.next) {
if (node.parent.methods.someMethod) {
resNode = node
break
} else {
node = node.parent.next
}
}
typeof resNode.methods.someMethod === 'Function'
- ES6 是否提供任何内部方法来执行此操作?
- 像 lodash 这样的库有解决这个问题的方法吗?
- 您如何正确描述这一点?你会说链表遍历吗?
注意-我知道我可以编写一个辅助函数来封装这里的逻辑,但这不是问题。谢谢你的建议。
【问题讨论】:
-
不,写你的函数。
-
@AdrianBrand 我很有希望。 ;)
标签: javascript ecmascript-6 lodash