У меня есть массив, называемый запросами, которые я пытаюсь сопоставить с ним следующим образом:
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", …}
Первые {enquiries: Array(2)}
подразумевают, что зарегистрированный элемент является объектом, который содержит ключ с enquiries
.
Поэтому, если ваша зарегистрированная переменная также enquiries
вам нужно
let firstNames = enquiries.enquiries.map(enquiry=>enquiry.firstName);
Также, чтобы вернуть firstName
из вашей функции стрелки, вам нужно либо использовать {}
либо return
внутрь, либо пропустить {}
вообще для неявного return
.
enquiries
?
Ну, у вас есть две причины. Во-первых, ваша переменная "запросы" является объектом (но, как кажется, она итерабельна, это хорошо!). В качестве объекта он не имеет функции отображения в своем прототипе.
Во-вторых, ваша функция стрелок использует фигурные скобки - что указывает на то, что код должен быть написан. Чтобы использовать ярлык для одного значения, вы можете либо избавиться от фигурных скобок, либо использовать обычные:
enquiries.map((enquiry) => (enquiry.firstName))
или даже:
enquiries.map(enquiry => enquiry.firstName)
Итак, для вывода:
Array.from(enquiries).map(enquiry => enquiry.firstName)
enquiries
- это массив, и поэтому не имеет ни одного из методовArray.prototype
. Почему , без некоторого дополнительного контекста в вашем коде, я не могу сказать.enquiries.enquiries.map
- похоже, чтоenquiries
- это объект с 1 ключом,enquiries