#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()
보관하지 마십시오. 테스트를 통과한 요소가 없으면 빈 배열이 됩니다.callbackFn
및 true
모두 선택 사항입니다.간단히 말해서
false
메서드는 테스트(함수로 제공)를 통과한 배열에서 요소를 필터링하는 훌륭한 도구입니다. 그런 다음 해당 값을 새 배열로 반환하므로 원래 배열을 변경하지 않습니다.
Reference
이 문제에 관하여(#100DaysOfCode의 9일차!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cfalucho/day-9-of-100daysofcode-3i9a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)