PDA

Просмотр полной версии : Ассоциативные массивы и регистр индексов


kruglov
18.01.2002, 18:03
Завожу массив:

xxx = [];
xxx ['A']=100;
xxx ['a']=200;

Потом обращаюсь к xxx ['A'] - выдается 200
Есть ли решения?

kruglov
18.01.2002, 18:12
Я, конечно, могу проэскейпить индексы, но ведь это, я думаю, увеличит время поиска?

C2Plus
18.01.2002, 18:17
Дело в том, что 'a' & 'A' - есть одно и тоже с точки зрения сами понимаете чего. :)
Делать можно так(вместо строки может быть обычный массив):
xxx['A'] = "100,200";

затем(код функции пропущен) делаем следующее:
associations = parse(xxx['A']) // return array

//result:
//associations[1] == 100;
//associations[2] == 200;

если я правильно тебя понял. :)

kruglov
18.01.2002, 18:26
Вообще-то у меня массив с некоей таблицей соответствия символов. (Метрика шрифта)... Думаю, стоит заменить символы на ихние коды, просто неохота было переделывать немереный массив :)

Спасибо.

То, что я хотел узнать - я узнал - "это стандартно во Flash, он только так и работает".

p.s. нет ли более которкой записи для ассоциативного массива, что-то вроде ("x"=>100, "y"=>"abcd") в PHP ?

kruglov
18.01.2002, 19:04
Благо AS очень похож на JS, так что накропал простенький скриптец на JS (который уже разделяет большие и маленькие буквы) и перевел все в коды символов.

Тему можно закрывать.

john
19.01.2002, 19:52
Еще проще -

chars = {}

//a

chars[ord("a")] = ....

//A

chars[ord("A")] = ....


доставать тем же макаром

Amadeus
21.01.2002, 12:27
Ord(), безусловно, хорошая функция.
Но ММ говорит, что она - деприкайтед.
А чем бы ее заменить?

И еще, John,
а в шестерке деприкейтнутые функции сохранились ли?

kruglov
21.01.2002, 19:48
Оригинал написал(а) john
доставать тем же макаром

А это быстро будет происходить? А то у меня функция определения метрики - узкое место. Сейчас я сделал массив с целыми индексами и адресуюсь к ним через .getCharCodeAt() - все равно недостаточно быстро происходит... Прямо хоть на сервер расчеты возлагай...