Вычисление длины Словаря в Flex

В настоящее время Google Places API не имеет возможности заказывать отзывы в ответе. Запрос функции для заказа был отправлен в системе отслеживания проблем Google в 2012 году:

https://issuetracker.google.com/issues/35821903

К сожалению, похоже, как Google не установил приоритет для этой задачи. Я могу предложить добавить функцию запроса в трекере, чтобы добавить свой голос и подписаться на дальнейшие уведомления.

7
задан ketan 30 September 2015 в 11:59
поделиться

5 ответов

Нет, нет никакого способа проверить длину объекта (Словарь является в значительной степени объектом, который поддерживает нестроковые ключи) кроме цикличного выполнения через элементы.

http://www.flexer.info/2008/07/31/how-to-find-an-objects-length/

Вы, вероятно, не должны волноваться о проверке, если свойство является внутренним.

12
ответ дан 6 December 2019 в 12:54
поделиться

Существует функция util в as3corelib, который может получить ключи в словаре. Можно проверить DicitonaryUtil

Метод:

    public static function getKeys(d:Dictionary):Array
    {
        var a:Array = new Array();

        for (var key:Object in d)
        {
            a.push(key);
        }

        return a;
    }

Таким образом, Вы сделали бы getKeys (словарь) .length

3
ответ дан 6 December 2019 в 12:54
поделиться

Можно использовать ассоциативные массивы вместо этого, потому что я не думаю, что возможно проверить длину объекта Словаря. Вы могли однако расширить класс Словаря и добавить, что функциональность и переопределяет соответствующие методы.

С другой стороны, Вы могли циклично выполниться через него каждый раз для получения длины, которая не является действительно хорошей идеей, но доступна.

var d:Dictionary = new Dictionary();
d["hi"] = "you"
d["a"] = "b"
for (var obj:Object in d) {
  trace(obj);
}
// Prints "hi" and "a"

Можно также здесь искать информацию об использовании "setPropertyIsEnumerable", но я полагаю, что это более полезно для объектов, чем это для Словаря.

1
ответ дан 6 December 2019 в 12:54
поделиться

Вы могли записать класс вокруг словаря, который управляет вставками/удалениями, таким образом, можно отслеживать ключевое количество.

Попытайтесь расширить прокси или просто сделайте обертку.

0
ответ дан 6 December 2019 в 12:54
поделиться

Для всех, кто наткнется на это, теперь есть обновление для DictionaryUtil . Теперь вы можете просто позвонить ..

var count:int = DictionaryUtil.getKeyCount(myDictionary);
0
ответ дан 6 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: