2017-03-24 6 views
0

개체 배열과 속성을 나타내는 문자열을 취하는 함수가 있습니다. 이 함수는 각 객체에서 해당 속성을 포함하는 배열을 반환해야합니다.배열의 .map() 반복자 함수로 전달되는 내용은 무엇입니까?

function pluck(array, property) { 
    var newArr = []; 
    array.map(function(paints){ 
     return newArr.push(paints[property]); 
    }); 
    return newArr; 
} 

이 새로운 배열을 반환하고 작동 :

여기 내 예제 코드입니다. 하지만 함수가 인수 중 하나 인 객체 배열을 가져 오는 경우 ... map 메소드의 익명 반복자 함수에 무엇이 전달됩니까? 열쇠 값?

지도 메서드를 사용하여 개체 배열을 반복하는 방법은 무엇입니까?

+1

맵 기능이 제대로 사용되지 않습니다. –

+1

지도는 실제로 새로운 배열을 만들 것이므로 newArr 및 푸시가 필요하지 않습니다. 당신은 map을'forEach'로 다루고 있습니다. map의 lambda는 배열의 모든 요소를 ​​차례대로 전달받으며, 결과는 각 호출에서 람다가 반환 한 요소가 모두 포함 된 배열입니다. – pvg

+1

[docs] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map) -'(value, index, array) => 인덱스의 새로운 값 ' –

답변

1

질문에 대한 의견은 코드에서 어떤 일이 일어나고 있는지 설명합니다.

배열에서 map을 호출하면 매핑 함수에 3 개의 인수가 제공됩니다.이 인수는 항상 사용되며 때로는 거의 사용되지 않습니다.

const result = items.map(function(element, index, items) { 
    // do the mapping 
}); 

기능은 차례로 원래 배열 items의 각 요소와 result 어레이의 동일 인덱스 위치에 배치 된 함수의 결과를 요구한다.

함수 인수은 다음

  • 요소 - 현재 인덱스
  • 항목 - -이 배열에서 현재 요소
  • 인덱스지도가 호출되는 원래 배열

당신의 뽑기 기능은 다음과 같이 쓸 수 있습니다 :

function pluck(arr, prop) { 
    return arr.map(item => item[prop]); 
} 
+0

답변을 설명해주세요. 그렇지 않으면 불완전한 답변이 될 수 있습니다. – slebetman