Найдите минимум один элемент, который соответствует критериям в массиве, используя машинописный текст на угловых 7 - PullRequest
0 голосов
/ 11 июля 2019

Мне в основном нужно искать любое вхождение значения true в массиве с использованием машинописи на угловом 7.

Если вы заметите ниже this.DocumentSelected[i] = true;, если условие выполнено. В идеале я хотел бы выйти здесь, но возврат не работает в пределах карты. Поэтому я пытаюсь инициализировать массив и проверить, есть ли одно значение, содержащее true, затем выйти из метода.

DocumentSelected: any = [];

this.files.map(doc => {
  if (doc.selectedDocumentItem.Id === null) {
    this.DocumentSelected[i] = true;
    return;
  }

  const datestr = (new Date(doc.selectedDate)).toUTCString();

  formData.append('documentTypeId' + i++, doc.selectedDocumentItem.Id.toString());
  formData.append('documentDate' + j++, datestr);

  const fileEntry = doc.fileDropEntry.fileEntry as FileSystemFileEntry;

  fileEntry.file((file: File) => {
    formData.append('file' + k++, file, doc.name);
  });
});

if (this.DocumentSelected) {
  this.notify.error('Please select the Document Type');
  return;
}

1 Ответ

0 голосов
/ 11 июля 2019

Array.prototype.map() будет перебирать массив и возвращать другой массив.

Вы не используете map() так, как это было задумано, поскольку вы не ищетедля вывода массива.

Для чисто итеративных целей вы должны использовать Array.prototype.forEach() или традиционный цикл for, если вам нужен доступ к i индексу итератора.

for (let i = 0; i < this.files.length; i++) {
  const doc = this.files[i];

  if (doc.selectedDocumentItem.Id === null) {
    this.DocumentSelected[i] = true;
    break; // <-- terminate for loop
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...