我有一个叫做查询的数组 我试图像这样映射它:
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", …}
答案 0 :(得分:4)
第一个{enquiries: Array(2)}
表示记录的元素是包含名为enquiries
的键的对象。
因此,如果您的记录变量也是enquiries
,那么您需要
let firstNames = enquiries.enquiries.map(enquiry=>enquiry.firstName);
要从箭头函数返回firstName
,您需要在其中使用{}
和return
,或者完全跳过{}
隐式{{ 1}}。
答案 1 :(得分:0)
嗯,你有两个原因。 首先,你的“查询”变量是一个对象(但似乎它是可迭代的,这很好!)。 作为一个对象,它的原型中没有map函数。
其次,你的箭头函数使用大括号 - 表示应该写入代码。 要使用单个值的快捷方式,您可以删除大括号或使用常规括号:
enquiries.map((enquiry) => (enquiry.firstName))
甚至:
enquiries.map(enquiry => enquiry.firstName)
因此得出结论:
Array.from(enquiries).map(enquiry => enquiry.firstName)