Массив, назначенный переменной, является неопределенным - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть несколько флажков для выбора вариантов.

И я получаю проверенные данные, например:

get violCategoriesFormArraySelectedIds(): string[] {
    return this.violCategories
      .filter((cat, catIdx) => this.violCategoriesFormArr.controls.some((control, controlIdx) => catIdx === controlIdx && control.value))
      .map(cat => cat.value);     
  }

, затем вывод console.log:

console.log('arrViol: '+this.violCategoriesFormArraySelectedIds);

arrViol: несанкционированный доступ к информации, получение конфиденциальной информации предположительно заслуживающим доверия лицом (фишинг)

, затем я пытаюсь присвоить ее моей переменной, например:

this.violation = this.violCategoriesFormArraySelectedIds;

но получил ошибку

Тип 'string []' нельзя назначить типу 'string'

Это моя переменная. Я пробовал также нарушение: string;

violation = '';

Я пробовал также

this.violation = this.violCategoriesFormArraySelectedIds.toString();

, и это "работает" console.log это хорошо, но теперь ..

Я хочу назначить this.violation моему интерфейсу (нарушение ?: любое; (я только что пробовал, но ничего))

 answers: Answers = {

    id: undefined,
    name: '',
    date: '',
    time: '',
    violation: this.violation,
    description: '',
    numofpeople: 0,

  };

, но this.violation, несмотря на правильный вывод в console.log, равен

undefined

когда я пытаюсь сделать console.log(this.answers.violation)

Мне не нужно помещать в мой MySql вывод массива. Я хочу просто строку, разделенную запятыми.

1 Ответ

1 голос
/ 24 февраля 2020

Вы ищете это:

this.violation = this.violCategoriesFormArraySelectedIds.join(', ')

Это преобразует массив строк в строку с элементами массива, разделенными запятыми.

Затем вам нужно назначить его до this.answers:

this.answers = {
    id: undefined,
    name: '',
    date: '',
    time: '',
    violation: this.violation,
    description: '',
    numofpeople: 0,
  };

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