Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我能';我不明白为什么';它说matcher函数是未定义的。_Javascript - Fatal编程技术网

Javascript 我能';我不明白为什么';它说matcher函数是未定义的。

Javascript 我能';我不明白为什么';它说matcher函数是未定义的。,javascript,Javascript,这段代码旨在为给定一个可能的字谜数组的字符串识别一个字谜数组 var anagram = function(input) { return input.toLowerCase(); } 我在这里向字符串原型添加matcher函数 String.prototype.matcher = function(remainingLetters) { var clone = this.split(""); for (var i = 0; i < clone.length; i

这段代码旨在为给定一个可能的字谜数组的字符串识别一个字谜数组

var anagram = function(input) {
    return input.toLowerCase();
}
我在这里向字符串原型添加matcher函数

String.prototype.matcher = function(remainingLetters) {
    var clone = this.split("");
    for (var i = 0; i < clone.length; i++) {
        if (clone[i].indexOf(remainingLetters) > -1) {
            remainingLetters.splice(clone[i].indexOf(remainingLetters, 1));
            clone.splice(i, 1);
        }
    }
    if (remainingLetters.length == 0 && clone.length == 0) {
        return true;
    }
    else {
        return false;
    }
}
a
String.prototype.matches = function(matchWordArray) {
    var result = [];

    for (var i = 0; matchWordArray.length; i++) {
        var remainingLetters = this.split("");
        if (matchWordArray[i].matcher(remainingLetters)) {
            result.push(arrayToMatch[i]);
        }
    }
    return result;
}

var a = anagram("test");
a.matches(["stet", "blah", "1"]);

module.exports = anagram;
String.prototype.matcher=函数(remainingler){
var clone=this.split(“”);
对于(变量i=0;i-1){
剪接(克隆[i].indexOf(remainingleters,1));
克隆剪接(i,1);
}
}
if(remaingletters.length==0&&clone.length==0){
返回true;
}
否则{
返回false;
}
}
A.
String.prototype.matches=函数(matchWordArray){
var结果=[];
对于(var i=0;matchWordArray.length;i++){
var remainingleters=this.split(“”);
if(matchWordArray[i].matcher(remaingletters)){
结果:推送(阵列匹配[i]);
}
}
返回结果;
}
var a=字谜(“测试”);
a、 匹配([“stet”,“blah”,“1”]);
module.exports=字谜;
可能是:

for (var i = 0; i < matchWordArray.length; i++) {

…将导致无限循环,因为在测试中matchWordArray.length始终为truthy(3)

在String.prototype.matches定义之前是“a”吗?这会让你搞砸事情吗?有几个问题。代码中有一个零散的
a
arrayToMatch
String.prototype.matches
中不存在,并且您的
for
循环看起来不正确。
for (var i = 0; matchWordArray.length; i++) {