매핑

2017-12-07 3 views
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' 메소드를 가지고 있지 않습니다. _Why_ 즉, 코드에 대한 컨텍스트가 없으면 말할 수 없습니다. – Jhecht

+3

'enquiries.enquiries.map'을 시도하십시오 -'enquiries'는 하나의 키를 가진 객체입니다,'enquiries' – tymeJV

+0

감사합니다 tymeJV 이미 시도 했었습니다 .... 기쁨이 없습니다 .. 무슨 일이 일어나고 있는지 확실하지 않습니다 – jojojohn

답변

4

첫 번째 {enquiries: Array(2)}은 기록 된 요소가 n enquiries 키가 들어있는 객체. 당신의 기록 변수가 다음도 enquiries 경우

그래서 당신은 당신이 그 안에 {}return를 사용하거나 {}을 건너 뛸 중 하나가 필요, 또한


당신의 화살표 기능에서 firstName을 반환

let firstNames = enquiries.enquiries.map(enquiry=>enquiry.firstName); 
필요 모두 암시 적으로 return입니다.

+0

감사합니다.하지만 오류가 발생합니다. TypeError : 정의되지 않은 속성 'map'을 읽을 수 없습니다. – jojojohn

+0

@jojojohn 어떤 브라우저 (* 및 버전 *)를 사용하고 있으며,'enquiries' 변수는 어떻게 채워져 있습니까? –

+0

나는 create-react-app로 컴파일하고 크롬으로 렌더링한다. – jojojohn

0

음, 그 이유는 두 가지입니다. 우선, "문의"변수는 객체입니다 (그러나 iteratable 인 것처럼 보입니다.). 개체로는 프로토 타입에 맵 기능이 없습니다.

둘째, 귀하의 화살표 기능은 중괄호 사용 - 그 코드를 작성해야 나타냅니다 을 당신도 중괄호를 제거 또는 일반 사람 사용할 수있는 단일 값의 바로 가기를 사용하려면.

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

또는 : 결론에 대한

enquiries.map(enquiry => enquiry.firstName) 

그래서 :

Array.from(enquiries).map(enquiry => enquiry.firstName) 
+0

감사합니다. 코드를 업데이트했습니다. 여전히 문제가있는 임 – jojojohn