Javascript .filter, .map, .every-

Kingmo·2022년 3월 24일
0

1. map

map()은 매서드 배열의 원소를 일괄적으로 변형시킬 때 사용하기 좋다.

const classmate = ["   ","   ","   "]
classmate.map((item)=>(item+" "))
=> (3)[" "," "," "] .

위의 코드가 실행되면서

기존의 classmate = [“철수”, “영희”, “훈이”] 배열이
[“철수어린이”, “영희” ,”훈이”]

[“철수어린이”, “영희어린이” ,”훈이”]

[“철수어린이”, “영희어린이” ,”훈이어린이”]

와 같이 맨 앞의 요소부터 순서대로 바뀐다.
여기서 map안의 변수item은 classmate의
원소들이 들어갈 매개변수이다.

const classmate = [
        {name: "진구"},
        {name: "비실이"},
        {name: "퉁퉁이"}]
//item.name => "진구","비실이","퉁퉁이"
//school
classmate.map((item)=>({name : item.name + "어린이",
                      school : "떡잎유치원"}))
=> (3)[
{name : "진구어린이",school : "떡잎유치원"},
{name : "비실이어린이",school : "떡잎유치원"},
{name : "퉁퉁이어린이",school : "떡잎유치원"}
]

배열은 map(( ) => ( ))
배열안의 객체는 map(( ) => ({ }))
객체가 들어간 배열은 중괄호{ }로 감싸주어야 한다.

화살표 함수에서 소괄호 생략이 가능하다.

다만 한줄짜리 코드여야한다.

소괄호 생략이 불가능한 경우

리턴값이 객체인 경우

map은 소괄호 ( )로 감싸진 부분이 return 된다.
하지만 중괄호{}로 감싸진 함수는 return 문이 없다면 리턴값을 반환하지 않는다.

2. filter

filter() 매서드는 이름 그대로 배열의 원소를 필터링 해주는 메서드이다.

const num = [1,2,3,4,5,6,7,8,9,10]
num.filter((item)=>(item<=8))
=> (8) [1, 2, 3, 4, 5, 6, 7, 8]

map과 filter의 차이점

map은 배열의 길이만큼 값이 나오지만,
filter는 조건에 따라 배열의 길이보다 적거나 같게 나온다.
또한 filter는 배열의 원소를 변형하여 반환할 수 없다.

3. every

every() 메서드는 배열 안의 모든 요소가 주어진 판별함수를 통과하는지 테스트한다.
통과 했다면 true, 아니면 false를 반환한다.

const isBelowThreshold = (currentValue) => currentValue < 40;

const array1 = [1, 30, 39, 29, 10, 13];

console.log(array1.every(isBelowThreshold));

array1의 요소는 전부 40보다 작으므로 true가 반환된다.

아래는 every의 사용법이다

// 화살표 함수
every((element) => { ... } )
every((element, index) => { ... } )
every((element, index, array) => { ... } )

// 콜백 함수
every(callbackFn)
every(callbackFn, thisArg)

// 인라인 콜백 함수
every(function callbackFn(element) { ... })
every(function callbackFn(element, index) { ... })
every(function callbackFn(element, index, array){ ... })
every(function callbackFn(element, index, array) { ... }, thisArg)
profile
Developer

0개의 댓글