我想在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/

10-09 22:24