JavaScript callback()函数无法成功回调

 实现功能当Code Word相同时,判断电文名称类型不能同时为1和A,2和A,否则返回callback()函数提示。遇到的问题是当只有两个Code Word列表时,是可以callback返回的,如图所示:

现在问题在于,从第三个开始,无法正常返回callback函数

第三个开始就不会返回callback函数提示了,但是看了验证过代码,在callback()函数前console.log('success'),却是可以成功输出success的,就是没法调用callback(),如下两图所示:

  代码如下:

if(this.AddTata.domains.length > 1) {

                for (let i=0;i<=this.AddTata.domains.length - 2;i++){

                  for (let j=i+1;j<=this.AddTata.domains.length - 1;j++){

                    if(this.AddTata.domains[i].codeWord == this.AddTata.domains[j].codeWord){

                      console.log(i,'i')

                      console.log(j,'j')

                      console.log(this.AddTata.domains[i].swifyMyType,'iT')

                      console.log(this.AddTata.domains[j].swifyMyType,'jT')

                      if((this.AddTata.domains[i].swifyMyType == '1' && this.AddTata.domains[j].swifyMyType == 'A') ||

                         (this.AddTata.domains[i].swifyMyType == 'A' && this.AddTata.domains[j].swifyMyType == '1') ||

                         (this.AddTata.domains[i].swifyMyType == '2' && this.AddTata.domains[j].swifyMyType == 'A') ||

                         (this.AddTata.domains[i].swifyMyType == 'A' && this.AddTata.domains[j].swifyMyType == '2')){

                         console.log('success')

                         callback(new Error('不可重復建立相同Code Word + My Type'))

                      }

                      else {

                         callback()

                      }

                    }else {

                      callback()

                    }

                  }

                }

              }else {

                callback()

              }

你不同的codeword放在同一个数组里,你要组合的比较才能实现,你这样写2个for循环肯定不能比较多个数;举个例子,有3个数,你要判断3个数不能有2个是相同的,那么你要怎么比较呢?1和2比,2和3比,1和3比都不同才能判断证明不存在2个相同的数,这个概念好像叫“组合”;所以给你个思路,你先写一个for循环,在这个for循环,和剩下所有数比(这里第二个for循环要比较剩下所有数,不是一个数),都不同,再进行下一次循环;若相同,直接break,返回错误提示;

我只改了for循环,你试试,应该可以了