일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- classList
- addEventListener
- 탑다운
- 2D
- euler
- getItem
- 회전
- Event
- javascript
- click
- 자주 사용하는 Quaternion 함수
- wsl
- 종속변수
- 도린이
- Quaternion
- jQuery
- topdown
- setItem
- 도트
- 코딩
- 연습
- Unity
- PYTHON
- vsCode
- intervals
- Lerp
- 웹스크래핑
- 독립변수
- 픽셀
- className
Archives
- Today
- Total
쫑가 과정
filter() / 배열 안에서 조건에 맞는 새로운 배열 만들기 본문
주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다.
구성
arr.filter(callback(element[, index[, array]])[, thisArg])
callback - 각 요소를 시험할 함수. true를 반환하면 요소를 유지, false를 반환하면 버린다.
다음 세 가지 매개변수를 받는다.
element - 처리할 현재 요소.
index(Optional) - 처리할 현재 요소의 인덱스.
array(Optional) - filter를 호출한 배열.
thisArg(Optional) - callback을 실행할 때 this로 사용하는 값.
반환값 - 테스트를 통과한 요소로 이루어진 새로운 배열(array). 어떤 요소도 테스트를 통과하지 못했으면 빈 배열을 반환.
예제)
const arr = [1,2,3,4,5];
function goodFilter1(item) {return true}
let FILTER1 = arr.filter(goodFilter1)
console.log(FILTER1);
function goodFilter2(item){return false}
let FILTER2 = arr.filter(goodFilter2)
console.log(FILTER2);
function goodFilter3(item) {return item !== 3}
let FILTER3 = arr.filter(goodFilter3)
console.log(FILTER3);
javaScript가 goodFilter를 5번 부르는 거다.
goodFilter(1), goodFilter(2), goodFilter(3), goodFilter(4), goodFilter(5)
그래서 item을 저장할 공간을 만들어 준다. -> goodFilter1(item)
FILTER1
새 array에 1, 2, 3, 4, 5를 포함하고 싶으면 모두 true로 반환되면 된다.
FILTER2
false를 리턴하면 item은 새 array에 포함되지 않고 빈 배열[]만 나온다.
FILTER3
3번째에서 false를 리턴하면 javaScript는 3빼고 새 배열에 1,2,4,5만 유지한다.
예제2)
0이 아닌, 숫자 id인 모든 요소의 걸러진 json을 만들기.
var arr = [
{ id: 15 },
{ id: -1 },
{ id: 0 },
{ id: 3 },
{ id: 12.2 },
{ },
{ id: null },
{ id: NaN },
{ id: 'undefined' }
];
var invalidEntries = 0;
function isNumber(obj) {
return obj !== undefined && typeof(obj) === 'number' && !isNaN(obj);
}
function filterByID(item) {
if (isNumber(item.id) && item.id !== 0) {
return true;
}
invalidEntries++;
return false;
}
var arrByID = arr.filter(filterByID);
console.log('Filtered Array\n', arrByID);
// Filtered Array
// [{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }]
console.log('Number of Invalid Entries = ', invalidEntries);
// Number of Invalid Entries = 5
예제3)
배열 내용을 조건에 따라 검색
var fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
/**
* 검색 조건에 따른 배열 필터링(쿼리)
*/
function filterItems(query) {
return fruits.filter(function(el) {
return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
})
}
console.log(filterItems('ap')); // ['apple', 'grapes']
console.log(filterItems('an')); // ['banana', 'mango', 'orange']
'JavaScript > 공부' 카테고리의 다른 글
=> / 화살표 함수 (arrow function expression) (0) | 2021.09.06 |
---|---|
.map() / 배열 안에 함수 적용해 새로운 배열 생성 (0) | 2021.09.06 |
intervals, timeout (0) | 2021.08.23 |
객체 모델 (0) | 2021.08.23 |
랜덤 숫자 (math.random) / .createElement() / 단락요소 생성 (0) | 2021.08.21 |
local storage (0) | 2021.08.21 |
string과 veriable 조합 / ``(백틱)사용 (0) | 2021.08.21 |
event의 기본 행동 막기 / preventDefalut() (0) | 2021.08.21 |
Comments