отображение через массив

1

У меня есть массив, называемый запросами, которые я пытаюсь сопоставить с ним следующим образом:

enquiries.map(enquiry => enquiry.firstName)

Я получаю следующую ошибку:

TypeError: enquiries.map is not a function

Здесь выводятся для console.log (запросы)

{enquiries: Array(2)}
  enquiries:Array(2)
  0:{_id: "5a28364d5a36f4556af34741",
     firstName: "jonny",
     surname: "rotten",
     telephoneNumber: 859937,
     gender: ""male"", …}
  1:{id: "5a283e4c5a36f4556af34742",
     firstName: "bob",
     surname: "hoskins",
     telephoneNumber: 939483948,
     gender: "male", …}
  • 2
    Основа здесь в том, что Javascript не согласен с тем, что enquiries - это массив, и поэтому не имеет ни одного из методов Array.prototype . Почему , без некоторого дополнительного контекста в вашем коде, я не могу сказать.
  • 3
    Попробуйте enquiries.enquiries.map - похоже, что enquiries - это объект с 1 ключом, enquiries
Показать ещё 2 комментария
Теги:
ecmascript-6
arrays

2 ответа

4

Первые {enquiries: Array(2)} подразумевают, что зарегистрированный элемент является объектом, который содержит ключ с enquiries.

Поэтому, если ваша зарегистрированная переменная также enquiries вам нужно

let firstNames = enquiries.enquiries.map(enquiry=>enquiry.firstName);

Также, чтобы вернуть firstName из вашей функции стрелки, вам нужно либо использовать {} либо return внутрь, либо пропустить {} вообще для неявного return.

  • 0
    Спасибо, что имеет смысл - но возвращает ошибку: TypeError: Невозможно прочитать свойство 'map' из неопределенного
  • 0
    @jojojohn, какой браузер ( и версию ) вы используете и как заполняется переменная enquiries ?
Показать ещё 2 комментария
0

Ну, у вас есть две причины. Во-первых, ваша переменная "запросы" является объектом (но, как кажется, она итерабельна, это хорошо!). В качестве объекта он не имеет функции отображения в своем прототипе.

Во-вторых, ваша функция стрелок использует фигурные скобки - что указывает на то, что код должен быть написан. Чтобы использовать ярлык для одного значения, вы можете либо избавиться от фигурных скобок, либо использовать обычные:

enquiries.map((enquiry) => (enquiry.firstName))

или даже:

enquiries.map(enquiry => enquiry.firstName)

Итак, для вывода:

Array.from(enquiries).map(enquiry => enquiry.firstName)
  • 0
    спасибо я обновил код. У меня все еще есть проблемы

Ещё вопросы

Сообщество Overcoder
Наверх
Меню