Javascript 배열 시리즈 VII의 이해 - 배열 루프 및 반복 파트 IV

이전 기사에서 배열 방법map을 사용하여 배열을 반복하는 방법에 대해 설명했습니다. 아래에서 확인할 수 있습니다.




오늘은 필터를 사용하여 배열을 반복하는 방법에 대해 이야기하겠습니다.

필터



때때로 우리는 필요하지 않은 것을 배열에서 필터링하고 싶을 것입니다. 특정 배열에서 모든 홀수를 필터링하려는 이 예를 살펴보십시오.

다음을 수행하여 for ... 루프로 이를 달성할 수 있습니다.

  const numbersArray = [1 ,2, 3, 4, 5, 6, 7, 8, 9, 10];
  const evenNumbersArray = [];

  for (let i = 0; i < numbersArray.length; i += 1) {
    if (numbersArray[i]%2 === 0) {
      evenNumbersArray.push(numbersArray[i])
    }
  }

  console.log(evenNumbersArray) // [2, 4, 6, 8, 10]

이 상황에서 우리는 달성하기 위해 for ... 루프와 if 문을 사용해야 했습니다. filter() 방법을 사용하여 동일한 결과를 얻을 수 있습니다.

  const numbersArray = [1 ,2, 3, 4, 5, 6, 7, 8, 9, 10];
  const evenNumbersArray = numbersArray.filter(number => number%2 === 0);

  console.log(evenNumbersArray) // [2, 4, 6, 8, 10]

위의 예에서 filter() 메서드가 원래 배열을 변경하지 않고 대신 새 배열을 만들고 조건 집합을 전달하는 이전 배열의 요소를 저장한다는 것을 알 수 있습니다.
filter() 메서드는 원래 배열에서 지정된 조건을 전달한 요소의 새 배열을 만듭니다. 위의 예에서 filter() 메서드는 짝수 요소로 새 배열을 만들었습니다.

구문을 살펴보겠습니다.

   // syntax
   const newArray = arr.filter(([currentValue], [arrayIndex], [arr]) => {
     // [specified condition]
   });

   or

   const newArray = arr.filter(callback([currentValue], [arrayIndex], [arr]));

할당의 왼쪽에는 필터 문의 결과가 새 변수에 저장됩니다. const 또는 let을 사용하여 선언할 수 있습니다.

[currentValue]: 처리 중인 배열의 현재 항목입니다. 행렬 후 현재 값은 배열의 다음 요소 값이 됩니다.

[arrayIndex]: 배열에서 현재 값의 인덱스입니다. 이는 현재 값이 처리된 후에도 변경됩니다.

[arr]: 반복되는 배열입니다.

[콜백]: 이것은 기본적으로 배열의 각 요소에 대해 수행되는 함수입니다. 함수가 true를 반환하면 요소가 새 배열에 추가되고 그렇지 않으면 건너뜁니다. 처음 세 항목(currentValue, index 및 array)을 인수로 허용합니다. 콜백 함수를 사용하기 전에 다음과 같이 선언할 수 있습니다.

  const numbersArray = [1 ,2, 3, 4, 5, 6, 7, 8, 9, 10];
  const isEvenNumber = num => num%2 === 0

  // using a callback function
  const evenNumbersArray = numbersArray.filter(isEvenNumber);

  console.log(evenNumbersArray) // [2, 4, 6, 8, 10]

작동 중인 filter()의 몇 가지 예입니다.


  • 배열을 필터링하여 모든 바르셀로나 선수를 가져옵니다.

  • 
    const players = [
      { name: "messi", club: "Barcelona"},
      { name: "Ronaldo", club: "Juventus"},
      { name: "Kante", club: "Chelsea"},
      { name: "De Jong", club: "Barcelona"},
      { name: "Semedo", club: "Barcelona"},
      { name: "Eriksen", club: "Totenham"},
      { name: "Pogba", club: "Man utd"},
      { name: "Alba", club: "Barcelona"},
      { name: "Dembele", club: "Barcelona"},
    ]
    
    const barcaPlayers = players.filter(player => player.club === "Barcelona");
    console.log(barcaPlayers);
    
    //[
    //  { name: "messi", club: "Barcelona"},
    //  { name: "De Jong", club: "Barcelona"},
    //  { name: "Semedo", club: "Barcelona"},
    //  { name: "Alba", club: "Barcelona"},
    //  { name: "Dembele", club: "Barcelona"},
    //]
    
    

    결론


    Array.filter()는 말 그대로 배열에서 항목을 필터링하려는 경우에 유용합니다. 원래 배열을 변경하지 않습니다.

    빠른 퀴즈: 기분이 좋습니까? 이것을 시도하고 댓글 섹션에 답을 남겨주세요.

    // Return an array of only prime numbers from the given array
    const numbersArray = [1, 2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 23, 24, 25, 29, 30];
    
    // Return an array of all words that begin with a vowel in the given array
    const randomWords = ["Nedy", "Adesoji", "Akaniru", "Umbrella", "Barcelona", "Xylophone"];
    
    filter 함수를 사용하기 위한 다른 인스턴스가 있습니까? 의견 섹션에서 공유하십시오.

    오늘은 여기까지입니다. 내일은 배열 반복에 사용되는 또 다른 함수 집합에 대해 이야기하겠습니다.

    다음은 내가 작성한 이 어레이 시리즈의 다른 기사에 대한 링크입니다.







  • 질문, 추가 또는 수정 사항이 있습니까? 댓글을 남겨주세요.

    읽어 주셔서 감사합니다. 👍

    좋은 웹페이지 즐겨찾기