#100DaysOfCode의 9일차!

오늘의 진행 상황



오늘은 좀 더 함수형 프로그래밍에 대해 공부했습니다. filter()reduce() 방법으로 작업하는 방법을 배웠습니다. 오늘의 목적을 위해. filter() 에 더 집중하겠습니다.

내가 배운 것



필터라는 단어는 간단히 말해서 무언가에서 원하지 않는 부분을 제거하는 것을 의미합니다. 암시하듯이 filter() 메서드는 함수에서 실행한 테스트를 통과한 배열에서 요소를 추출하고 값이 추가된 새 배열을 반환합니다.

이 색상 배열이 있고 색상의 단어 길이가 6보다 크거나 같은 배열의 모든 elements를 반환하려고 한다고 가정해 보겠습니다. 음, filter() 메서드를 사용하여 이를 해결할 수 있습니다.

let colors = ['blue', 'red', 'orange', 'yellow', 'green', 'black', 'white', 'purple']

let passTest = colors
                   .filter(word => word.length >= 6)

console.log(passTest)
//output: ["orange", "yellow", "purple"]


위의 예에서. filter() 배열에서 colors 메서드를 사용하고 요소를 전달하는 함수로 요소를 유지합니다.

우리가 word 하면 함수의 테스트를 통과한 단어를 볼 수 있습니다. word

기준에 따라 배열 내부 검색.



한발 더 나아가자...

위에서 어레이true를 사용합니다. 단어 길이 대신 글자console.log(passTest)가 있는 단어를 검색하여 해당 단어를 반환해 보겠습니다. 이 문제를 해결하기 위해 ["orange", "yellow", "purple"]를 계속 사용할 수 있습니다.

let colors = ['blue', 'red', 'orange', 'yellow', 'green', 'black', 'white', 'purple']

function search(arr, query){
    return arr.filter(function(str){
        return str.indexOf(query) !== -1
    })
}

console.log(search(colors, "low"))
//output: ["yellow"]


이 코드를 분해해 보겠습니다.

먼저 첫 번째 매개변수는 colors 이고 두 번째 매개변수는 low(문자열)라는 두 개의 매개변수를 사용하는 함수를 만들었습니다.

두 번째 코드 줄에서 ...

return arr.filter(function(str){
})


배열에서 필터링된 문자열을 반환하지만 먼저 내부 return 문에서 사용할 요소filter()를 전달해야 합니다.

 return str.indexOf(query) !== -1


이 return 문에서 배열의 각 arr를 반복하고 query 메서드를 사용하여 주어진 str의 인덱스를 반환하고 비교합니다. element 이면 요소의 단어를 반환합니다.
indexOf를 테스트합니다.

공백 채우기


query의 전체 매개변수는 다음과 같습니다.

array.filter(function callbackFn(element, index, array))

true 함수는 배열의 각 요소를 테스트하는 인수입니다. console.log(search(colors, "low")) 경우 요소를 유지합니다. 경우filter() 보관하지 마십시오. 테스트를 통과한 요소가 없으면 빈 배열이 됩니다.
callbackFntrue 모두 선택 사항입니다.

간단히 말해서


false 메서드는 테스트(함수로 제공)를 통과한 배열에서 요소를 필터링하는 훌륭한 도구입니다. 그런 다음 해당 값을 새 배열로 반환하므로 원래 배열을 변경하지 않습니다.

좋은 웹페이지 즐겨찾기