ds_map_find_previous 함수 설명
ds_map_find_previous
함수는 지정된 키 이전에 저장된 DS 맵의 이전 키를 반환합니다. 이 함수는 DS 맵을 반복하면서 특정 값을 찾을 때 유용할 수 있지만, 가능한 한 피하는 것이 좋습니다. 왜냐하면 성능이 느릴 수 있기 때문입니다. 만약 해당 키가 존재하지 않으면, 함수는 undefined
를 반환합니다. 항상 is_undefined()
함수를 사용하여 이 값을 확인해야 합니다.
문법
ds_map_find_previous(id, key);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
id | Handle | 사용할 맵의 핸들 |
key | String | 이전 키를 찾기 위한 키 |
반환값
- 변수 또는
undefined
예제 코드
다음 코드는 DS 맵의 크기를 구하고, 마지막 키를 찾아서 "gold"라는 키를 찾기 위해 DS 맵을 역으로 반복합니다.
var size = ds_map_size(inventory) - 1;
var key = ds_map_find_last(inventory);
for (var i = size; i > 0; i--;){
if (key != "gold"){
key = ds_map_find_previous(inventory, key);
} else break;
}
위의 코드는 임시 변수를 생성한 후, DS 맵의 크기를 구하고 컴퓨터에 저장된 마지막 키를 찾습니다. 그런 다음 for
루프를 사용하여 DS 맵을 역으로 반복하면서 "gold"라는 키 값을 찾습니다. 만약 찾으면 루프를 종료합니다.
활용 예제
예제 1: 특정 키 이전의 키 찾기
var previous_key = ds_map_find_previous(inventory, "silver");
if (!is_undefined(previous_key)) {
// 이전 키가 존재할 경우의 처리
}
예제 2: 모든 키를 역으로 탐색하기
var current_key = ds_map_find_last(inventory);
while (!is_undefined(current_key)) {
// 현재 키에 대한 처리
current_key = ds_map_find_previous(inventory, current_key);
}
예제 3: 특정 조건에 맞는 이전 키 찾기
var key = ds_map_find_last(inventory);
while (key != undefined) {
if (some_condition(key)) {
// 조건에 맞는 키 처리
break;
}
key = ds_map_find_previous(inventory, key);
}
이러한 예제들은 ds_map_find_previous
함수를 활용하여 DS 맵에서 이전 키를 찾는 다양한 방법을 보여줍니다.