[JavaScript] filter ( )
2022. 1. 17. 21:23
728x90
반응형
자바스크립트의 filter 함수는 조건을 주고 해당 조건이 참인 요소를 모아 새로운 배열을 만들어 반환하는 함수이다.
** 새로운 배열을 만들지만 중복값을 제거해주지는 않기 때문에 배열 요소가 중복될 수 있다.
기본 구문
arr.filter(callback(element[, index[, array]])[, thisArg])
- callback : 각 요소에 대한 조건값
- element : 처리할 현재 요소
- index : 현재 인덱스
- array : filter를 호출한 배열
- thisArg : callback을 생성할 때 this로 사용하는 값
특징
- 값이 존재하는 인덱스에 대해서만 호출이 된다.
- 삭제 또는 값이 없는 배열은 filter 함수가 실행되지 않는다.
- 기존 배열의 값을 변경하지 않는다.
- 처리되는 범위는 callback의 첫 호출 전에 설정된다. callback 호출 후 기존 배열을 추가해도 추가된 요소는 filter 함수에서 반영되지 않는다.
예시
[프로그래머스] - "실패율" 에 사용된 filter( )
[2,1,2,6,2,4,3,3] 의 배열 ( stages ) 이 주어진다.
여기서 구해야하는 수는 stages.filter( ele => ele === i )
ele : stages에서 하나씩 꺼낸 요소를,
ele === i 조건 ( 1 ~ 5 사이의 수 ) 에 맞는 요소를 토대로 새로운 배열을 만들어낸다.
에 만족하는 요소 배열을 반환
/**
*
* @param N: 스테이지 수
* @param stages: 현재 멈춰있는 스테이지 배열
* @returns {*[]}: 실패율이 높은 스테이지부터 내림차순
*/
function solution(N, stages) {
.
.
.
for(let i = 1; i <= N; i++){
let player = stages.filter(ele => ele === i).length;
let failRatio = 0;
// 플레이어가 없을 경우 실패율: 0
if(player === 0) failRatio = 0;
else failRatio = (player) / total;
.
.
.
return arr.map(ele => ele.idx);
}
728x90
반응형
'개발노트 > JavaScript' 카테고리의 다른 글
Potentially invalid reference access to a class field via 'this.' of a nested function (0) | 2023.05.19 |
---|---|
[JavaScript] Get, Set (0) | 2023.04.06 |
[JavaScript] this (0) | 2023.01.27 |
[JavaScript] Promise (async/await) (0) | 2022.09.14 |
[JavaScript] 자바스크립트로 Ajax 구현 (0) | 2021.09.28 |