Просмотр полной версии : Ассоциативные массивы и регистр индексов
Завожу массив:
xxx = [];
xxx ['A']=100;
xxx ['a']=200;
Потом обращаюсь к xxx ['A'] - выдается 200
Есть ли решения?
Я, конечно, могу проэскейпить индексы, но ведь это, я думаю, увеличит время поиска?
Дело в том, что 'a' & 'A' - есть одно и тоже с точки зрения сами понимаете чего. :)
Делать можно так(вместо строки может быть обычный массив):
xxx['A'] = "100,200";
затем(код функции пропущен) делаем следующее:
associations = parse(xxx['A']) // return array
//result:
//associations[1] == 100;
//associations[2] == 200;
если я правильно тебя понял. :)
Вообще-то у меня массив с некоей таблицей соответствия символов. (Метрика шрифта)... Думаю, стоит заменить символы на ихние коды, просто неохота было переделывать немереный массив :)
Спасибо.
То, что я хотел узнать - я узнал - "это стандартно во Flash, он только так и работает".
p.s. нет ли более которкой записи для ассоциативного массива, что-то вроде ("x"=>100, "y"=>"abcd") в PHP ?
Благо AS очень похож на JS, так что накропал простенький скриптец на JS (который уже разделяет большие и маленькие буквы) и перевел все в коды символов.
Тему можно закрывать.
Еще проще -
chars = {}
//a
chars[ord("a")] = ....
//A
chars[ord("A")] = ....
доставать тем же макаром
Ord(), безусловно, хорошая функция.
Но ММ говорит, что она - деприкайтед.
А чем бы ее заменить?
И еще, John,
а в шестерке деприкейтнутые функции сохранились ли?
Оригинал написал(а) john
доставать тем же макаром
А это быстро будет происходить? А то у меня функция определения метрики - узкое место. Сейчас я сделал массив с целыми индексами и адресуюсь к ним через .getCharCodeAt() - все равно недостаточно быстро происходит... Прямо хоть на сервер расчеты возлагай...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.