我想在filterArr内调用filterArr。这是我的实现。
filterArr(array, search) {
var result = [];
array.forEach((a)=> {
var temp = [],
o = {},
found = false;
if (a.name === search) {
this.o.name = a.name;
found = true;
}
if (Array.isArray(a.children)) {
temp = this.filterArr(a.children, search);//***Cannot read property 'filterArr' of undefined***
if (temp.length) {
this.o.children = temp;
found = true;
}
}
if (found) {
result.push(o);
}
});
return result;
}
如何正确调用filterArr方法?
最佳答案
您必须使用Arrow function
来保持正确的this
,因此需要更改array.forEach(function (a) {
才能使用`Arrow函数
array.forEach((a) => {
关于javascript - 如何在 typescript 中递归调用方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44673266/