Введение
Словарь - это набор ключей / значений, подобный таблице:
+------+--------+
| key1 | value1 |
+------+--------+
| key2 | value2 |
+------+--------+
| key3 | value3 |
+------+--------+
| key4 | value4 |
+------+--------+
Для доступа к значениям вы должны использовать клавиши, т.е.: dict[key2]
возвращает value2
Ответ 1:
Вы не можете получить доступ к ключам напрямую, но вы можете использовать оператор for ()
для доступа к ним, так что:
for (var key:* in dict) {
trace('dict[' + key + '] = ' + dict[key]);
}
выведет это:
dict[key1] = value1
dict[key2] = value2
dict[key3] = value3
dict[key4] = value4
Вы используете оператор for each ()
. С этим конкретным утверждением у вас есть другой результат, потому что вы перебираете значения, а не ключи, поэтому это:
for each (var value:* in dict) {
trace(value);
}
выведет это:
value1
value2
value3
value4
Поэтому, если вы хотите что-то проверить с помощью ключа, вы должны использовать форму for (key in dict)
.
Ответ 2:
Я рекомендую вам использовать массивы следующим образом:
dict[box_a] = [s1];
dict[box_b] = [s2];
dict[box_c] = [s3];
dict[box_d] = [s3, s4];
, а затем получить доступ к значениям в виде массивов и проверить все значения:
for (var key:* in dict) {
var values:Array = dict[key];
for each (var value:* in values) {
// do what you want with s1, s2, s3, etc
}
}