Я ищу эквивалент цикла foreach с ключами в Actionscript. В PHP это будет:
foreach($array as $key => $value)
{
}
Я нашел два решения, которые будут работать, но мне интересно, есть ли лучший способ сделать это. Первое решение - использовать цикл for..in. Что дает вам ключи, но вы все равно должны использовать ключ для доступа к нужному элементу в вашей структуре. Например:
for(var key:String in results)
{
trace(key + ": " + results[key]);
}
Второй вариант - это цикл для каждого .. в, который, я считаю, является новым в AS3. С этим решением я не могу сказать, что это за ключи. Например:
for each(var row:* in results)
{
trace(row);
}
В настоящее время я собираюсь использовать для ... в. Я просто ищу лучший путь.
Спасибо,
Rob
Обновление: Скорость не такая уж большая проблема, потому что массив никогда не будет слишком большим. Порядок имеет значение, и я хотел бы получить ключи в порядке вставки. Вот пример массива:
sites = {'site1': 34, 'site2': 52, 'site3': 66}
Я хотел бы использовать ключ и значение каждой записи.
Я хочу максимально упростить структуру моего массива. Я мог бы изменить массив сайтов выше, чтобы он выглядел так:
sites = {{'name': 'site1', 'id': 34},
{'name': 'site2', 'id': 52},
{'name': 'site3', 'id': 66}}
Однако я бы не стал идти по этому пути, потому что он добавляет больше измерений в мою структуру массива.