Использование двух циклов for для поиска дубликатов - PullRequest
0 голосов
/ 18 сентября 2019

Это моя функция для включения кнопки, если выполняются условия и функция возвращает true.Я добавил дополнительный цикл for для поиска дубликатов, и теперь он работает неправильно.Посоветуйте, пожалуйста, где я допустил ошибку?

 enabled(): boolean {
    for (let i: number = 0; i < this.entries.length; ++i) {
      let strText: string = this.entries[i].textN;
      let strValue: number = this.entries[i].valueN;

      if (strText.includes('=') || strText.includes(',')) {
        return false;
      }

      if (strText == null || strText == undefined || strText == '') {
        return false;
      }

      if (!strValue || strValue % 1 !== 0) {
        return false;
      }

      for (let j = i + 1; j < this.entries.length; ++j) {
        if (strValue[i] === strValue[j]) {
          return false;
        }
      }
    }

    return true;
  }

1 Ответ

0 голосов
/ 18 сентября 2019

Проблема может быть здесь:

for (let j = i + 1; j < this.entries.length; ++j) {
    if (strValue[i] === strValue[j]) {
      return false;
    }
}

Я думаю, что вы хотите:

for (let j = i + 1; j < this.entries.length; ++j) {
    if (this.entries[i].textN === this.entries[j].textN) {
      return false;
    }
  }

strValue [i] не предназначен для сравнения со strValue [j]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...