gpt4 book ai didi

javascript - 递归嵌套私有(private)函数

转载 作者:行者123 更新时间:2023-11-29 21:57:48 26 4
gpt4 key购买 nike

也许我把它弄得太复杂了,但我想要的是一个可以从公共(public)方法调用的私有(private)函数。私有(private)函数是递归的。我经历了几次迭代,包括尝试在各种上下文中绑定(bind)它,但到目前为止还没有。

我的输入是这样的:

var row = new Row(["", "", ["AB", "AC"], "TR"]);
var badAbbrs = ["AC", "AD", "XX"];
row.badAbbreviations(badAbbrs);

我想要的是:["", "", "AC", ""]

这是我当前尝试的相关部分:

function Row(r) {
this.data = r;

this.check = function (coll) {
function icheck (val) {
if (val.length == 0) {
return "";
} else {
if (_.isArray(val) ) {
var out = _.compact(val.map(icheck) );
return out.length == 0 ? "" : out;
} else {
return (coll.indexOf(val.replace("*",""))) > -1 ? val : ""
}
}
}
}
}

Row.prototype.badAbbreviations = function (badAbbrs) {
var fcheck = this.check(badAbbrs);
return this.data.map(fcheck);
}

我得到的错误是:TypeError: (class)@398632c0 is not a function, it is undefined。错误行是“return this.data.map(fcheck)”行。

编辑:拼写错误。编辑器不断更改 fcheck 以检查。

最佳答案

提供正式答案:

this.check 不返回函数,它返回 undefined。因此,您在执行时会收到该错误消息

return this.data.map(fcheck);

因为 fcheck 不是函数。将 this.check 更改为 return 函数:

this.check = function(...) {
return function icheck(...) {
// ...
}
};

关于javascript - 递归嵌套私有(private)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25465199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com