mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
Add 'rfind' function to Array
This commit is contained in:
parent
269d570420
commit
46b6bb9dc4
3 changed files with 20 additions and 3 deletions
|
@ -155,12 +155,21 @@ int Array::find(const Variant& p_value, int p_from) const {
|
|||
return _p->array.find(p_value, p_from);
|
||||
}
|
||||
|
||||
int Array::find_last(const Variant& p_value) const {
|
||||
int Array::rfind(const Variant& p_value, int p_from) const {
|
||||
|
||||
if(_p->array.size() == 0)
|
||||
if (_p->array.size() == 0)
|
||||
return -1;
|
||||
|
||||
for (int i=_p->array.size()-1; i>=0; i--) {
|
||||
if (p_from < 0) {
|
||||
// Relative offset from the end
|
||||
p_from = _p->array.size() + p_from;
|
||||
}
|
||||
if (p_from < 0 || p_from >= _p->array.size()) {
|
||||
// Limit to array boundaries
|
||||
p_from = _p->array.size() - 1;
|
||||
}
|
||||
|
||||
for (int i=p_from; i>=0; i--) {
|
||||
|
||||
if(_p->array[i] == p_value){
|
||||
return i;
|
||||
|
@ -170,6 +179,11 @@ int Array::find_last(const Variant& p_value) const {
|
|||
return -1;
|
||||
}
|
||||
|
||||
int Array::find_last(const Variant& p_value) const {
|
||||
|
||||
return rfind(p_value);
|
||||
}
|
||||
|
||||
int Array::count(const Variant& p_value) const {
|
||||
|
||||
if(_p->array.size() == 0)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue