Какой лучший способ перезапустить AS3 l oop? - PullRequest
1 голос
/ 13 марта 2020

Я перебираю список имен и хочу проверить, совпадают ли какие-либо с определенными именами, например, «Тодд».

Если есть совпадение, я теперь хочу l oop через все Имена снова проверяют существование Todd (1).

Если есть совпадение, я теперь хочу l oop по всем именам снова проверять существование Todd (2).

И так до тех пор, пока я не получу первый доступный прирост имени, например "Todd (7)"

Является ли идея разбить l oop на совпадение, например, приращение, например, var count: int на 1 и перезапустите поиск l oop снова, как ...

if(names[i]=="Todd (" + count + ")" ...

?

Если это так, как мне перезапустить al oop после того, как он один раз нарушил условие встретили пожалуйста?

Спасибо.

Ответы [ 2 ]

1 голос
/ 13 марта 2020

Существует метод Array.indexOf (...) , который возвращает -1, если совпадений нет, или индекс (0 или выше) первого точного совпадения. Итак, как-то так:

function availableIndex(list:Array, value:String):int
{
    var result:int = 0;
    var aName:String;

    do
    {
        // Get the next index (starts with 1).
        result++;

        // Construct the next name based on the index.
        aName = value + " (" + result + ")";
    }
    while (list.indexOf(aName) > -1);
    // Proceed looping if such a name is in the given Array.

    return result;
}
1 голос
/ 13 марта 2020

Вот то, что я придумал:

вам нужно для l oop прежде всего, что будет выглядеть примерно так:

for(var i:int = 0; i < names.length - 1;i++){
     if(names[i] == "Todd (" + count + ")"{
         count++;
         i = names.length - 1;
     }
}

Дайте мне знать, если вам нужно синтаксис для создания функции, чтобы держать это. То есть, если вы хотите вызвать функцию из другой функции, и в этом случае я думаю, что переменная "count" должна быть глобальной, чтобы вы не вызывали ее из функции, которая ее изменяет, поэтому сбрасываете ее и не позволяя тому, что вы хотите, случиться, случиться.

Еще одна вещь, которая мне интересна: если вы просто хотите организовать массив, то есть встроенные функции сортировки, которые могут это сделать.

Также , i = names.length действительно единственный способ, которым я придумал, чтобы остановить l oop до сих пор. Я не знаю, есть ли лучший способ, но это то, что я знаю, работает в данный момент. Это может занять некоторое время, чтобы понять это правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...