array_copy_while 함수 설명
array_copy_while
함수는 새로운 배열을 생성하고 입력 배열의 요소를 추가합니다. 이때, 요소가 주어진 조건을 만족하는 동안(즉, 조건 함수가 true를 반환하는 동안) 요소를 추가합니다. 조건 함수가 false를 반환하는 순간, 함수의 실행이 중단되며, 해당 요소와 그 이후의 요소는 새로운 배열에 추가되지 않습니다. 이 함수는 array_filter
와 유사하지만, array_filter
는 조건 함수가 false를 반환한 후에도 계속해서 요소를 검사하는 반면, array_copy_while
은 첫 번째 false가 반환되면 즉시 중단됩니다.
반환값
- 새로운 배열
예제
array = ["1", "2", "3", "STOP", "4", "5", "6", "STOP", "7", "8", "9"];
array_up_to_stop = array_copy_while(array, function(element, index) {
return (element != "STOP");
}, -1, -infinity);
위의 코드는 먼저 문자열로 이루어진 배열 array
를 생성합니다. 이 배열은 첫 9개의 숫자와 "STOP" 문자열을 포함하고 있습니다. 그런 다음 array_copy_while
함수를 호출하여, 요소가 "STOP"이 아닐 때 true를 반환하는 조건 함수를 사용합니다. 오프셋 매개변수는 -1로 설정하고 길이는 -infinity로 설정하여 배열의 마지막 인덱스부터 역순으로 값을 반복합니다. 최종적으로 결과는 array_up_to_stop
변수에 저장되며, 이 배열은 "9", "8", "7"만 포함하게 됩니다.
활용 예제
예제 1: 숫자 배열에서 특정 값까지 복사하기
numbers = [10, 20, 30, "STOP", 40, 50];
result = array_copy_while(numbers, function(num) {
return (num != "STOP");
});
예제 2: 문자열 배열에서 특정 단어까지 복사하기
words = ["apple", "banana", "STOP", "cherry", "date"];
filtered_words = array_copy_while(words, function(word) {
return (word != "STOP");
});
예제 3: 조건에 맞는 객체 배열 필터링
objects = [obj1, obj2, obj3, "STOP", obj4];
filtered_objects = array_copy_while(objects, function(obj) {
return (obj != "STOP");
});
예제 번호 | 설명 | 코드 스니펫 |
---|---|---|
1 | 숫자 배열에서 "STOP"까지 복사하기 | gml numbers = [10, 20, 30, "STOP", 40, 50]; result = array_copy_while(numbers, function(num) { return (num != "STOP"); }); |
2 | 문자열 배열에서 "STOP"까지 복사하기 | gml words = ["apple", "banana", "STOP", "cherry", "date"]; filtered_words = array_copy_while(words, function(word) { return (word != "STOP"); }); |
3 | 객체 배열에서 "STOP"까지 복사하기 | gml objects = [obj1, obj2, obj3, "STOP", obj4]; filtered_objects = array_copy_while(objects, function(obj) { return (obj != "STOP"); }); |