array.map(): 더 나은 방법 🧐 ?

The method map() creates a new array with the values that get returned by calling the function provided to map(anyFunctionHere) on every element of an array.


map()가 실행되는 배열의 이름은 호출 배열로 지정됩니다.



이름이 뒤집힌 배열이 주어지면 원래 배열에서 이름의 위치는 같지만 이름이 뒤집힌(이해가 되어야 함) 새 배열을 만듭니다.
for-loop 를 사용하여 어떻게 해결할 수 있는지 살펴보겠습니다.

const arrayOfNames = ['anhsirK', 'nosaJ', 'nolE', 'drawdE'];

let arrayOfReversedNames = []; // declaring an empty array to store results.

for (let nameIndex = 0; nameIndex < arrayOfNames.length; nameIndex = nameIndex + 1) {
  // we can reverse a string in JavaScript with String.split("").reverse().join("")
  const reversedFirstName = arrayOfNames[nameIndex].split('').reverse().join('');
  arrayOfReversedNames.push(reversedFirstName);
}

// output: [ 'Krishna', 'Jason', 'Elon', 'Edward' ]


위의 예에서 arrayOfReversedNames를 선언한 다음 계산된 역방향 이름을 해당 배열에 추가했습니다.
map() 방법을 사용하여 동일한 문제를 해결할 차례입니다.

const arrayOfNames = ['anhsirK', 'nosaJ', 'nolE', 'drawdE'];

// declaring an empty array to store results.
let arrayOfReversedNames = arrayOfNames.map((firstName) => {
  return firstName.split("").reverse().join("")
}); 

// arrayOfReversedNames: [ 'Krishna', 'Jason', 'Elon', 'Edward' ]


인수 map() 와 함께 arrow functionfirstName 로 전달합니다. firstName는 호출 배열의 요소에 대한 각 반복에서 다른 값을 가집니다. 여기 첫 번째 반복에서 firstName의 값은 anhsirK , nosaJ 두 번째 반복 등... map()도 동일한 반복을 수행하기 때문에 동일한 결과를 얻는 것이 분명합니다. 그for-loop가 하고 있었습니다.

이 시점에서 두 메서드가 호출 배열의 요소에 대한 반복과 동일한 작업을 수행하는지 물어볼 수 있습니다. for-loop 대신 map()를 사용해야 하지 않습니까? 더 읽기 쉽고 그곳에서 수행되는 작업을 명시적으로 설명합니다.

예, 아니오.

for-loop보다 map() 사용의 이점


  • 더 적은 코드 라인 - 대부분 더 좋습니다!
  • map()에 전달된 함수의 인수를 사용하여 호출 배열의 개별 요소에 직접 액세스할 수 있습니다. 항상 callingArray[someIndex]로 값을 가져오는 것보다 훨씬 쉽습니다.
  • 배열의 모든 요소가 반복될 것이라는 확신map() - 더 이상 for-loop 내부의 잘못된 인덱스를 처리하지 않습니다.

  • 결국 우리가 알고 있는 것은 배열이 있고 해당 배열의 모든 요소를 ​​처리하고 새 배열에 값을 저장하려는 경우 map()가 올바른 방법이라는 것입니다.


    이것은 원래 작성되었습니다 at my blog


    편집하다:

    MDN에 따라 사용하지 않는 위치map()에 대한 자세한 정보를 얻으려면 이 게시물에 대한 댓글을 살펴보세요.

    좋은 웹페이지 즐겨찾기