array_filter_ext 함수 설명
array_filter_ext
함수는 array_filter
와 유사하지만, 새로운 배열을 반환하는 대신 인자로 전달된 원래 배열을 수정합니다. 이 함수는 배열의 모든 요소에 대해 실행되는 Predicate Function을 제공합니다. 이 함수는 조건에 따라 true
또는 false
를 반환해야 합니다.
주요 기능
- Predicate Function: 배열의 각 요소에 대해 실행되며, 조건에 따라
true
또는false
를 반환합니다. - Offset:
true
를 반환한 첫 번째 요소는 주어진 인덱스에 기록되며, 나머지 요소는length
매개변수의 방향에 따라 후속 인덱스에 기록됩니다. - 반환값: 유효한 요소의 수를 반환하며, 이는 주어진 오프셋 위치에서 시작하여
length
인자에 의해 설정된 방향으로 계산됩니다.
반환값
- Real: 배열의 유효한 요소 수
예제 코드
var _is_even = function(_element, _index) {
return (_element mod 2) == 0;
};
var _values = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var _valid_elements = array_filter_ext(_values, _is_even, -2, -infinity);
위의 코드는 _is_even
이라는 함수를 정의합니다. 이 함수는 요소와 인덱스를 매개변수로 받아 짝수일 경우 true
를 반환합니다. 그런 다음 1부터 9까지의 숫자로 초기화된 배열 _values
가 생성됩니다. 마지막으로 array_filter_ext
가 이 배열에 대해 호출되며, 시작 인덱스는 -2(두 번째 마지막 인덱스)이고 길이는 -infinity입니다. 이는 8부터 시작하여 배열의 처음까지 거슬러 올라가며 체크합니다. 이 함수는 4개의 짝수(8, 6, 4, 2)를 찾아 4를 새로운 유효 요소 수로 반환합니다. 이 함수는 원래 배열을 변형하므로, _values
는 [1, 2, 3, 4, 2, 4, 6, 8, 9]
로 변경됩니다.
활용 예제
예제 번호 | 설명 |
---|---|
1 | 배열에서 홀수를 필터링하여 새로운 배열에 저장 |
2 | 특정 조건을 만족하는 문자열만 남기기 |
3 | 배열의 특정 범위 내에서 유효한 요소만 남기기 |
4 | 배열의 요소를 변형하여 새로운 배열 생성 |
예제 코드 스니펫
// 예제 1: 홀수 필터링
var _is_odd = function(_element, _index) {
return (_element mod 2) != 0;
};
var _odd_elements = array_filter_ext(_values, _is_odd, -2, -infinity);
// 예제 2: 특정 조건을 만족하는 문자열 필터링
var _is_long_string = function(_element, _index) {
return string_length(_element) > 5;
};
var _strings = ["apple", "banana", "cherry", "date"];
var _long_strings = array_filter_ext(_strings, _is_long_string, 0, -infinity);
// 예제 3: 배열의 특정 범위 내에서 유효한 요소 필터링
var _is_in_range = function(_element, _index) {
return _element >= 3 && _element <= 7;
};
var _range_elements = array_filter_ext(_values, _is_in_range, 0, -infinity);
// 예제 4: 배열의 요소를 변형하여 새로운 배열 생성
var _double_elements = function(_element, _index) {
return _element * 2;
};
var _doubled_values = array_filter_ext(_values, _double_elements, 0, -infinity);