Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Ассоциативные массивы и регистр индексов (http://www.flasher.ru/forum/showthread.php?t=25978)

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() - все равно недостаточно быстро происходит... Прямо хоть на сервер расчеты возлагай...


Часовой пояс GMT +4, время: 15:13.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.