API коллекций JavaScript? - PullRequest
       2

API коллекций JavaScript?

8 голосов
/ 28 ноября 2010

Я довольно долго искал API коллекций (список, набор) для JS и, что удивительно, мог только вот что: http://www.coffeeblack.org/work/jscollections/

Это именно то, что я искал, но яинтересно, почему jQuery не обеспечивает это?Чего мне не хватает?Или, может быть, насколько неэффективны мои методы поиска?

Я знаю, что массивы поддерживают pop () и push (), но мне нужно, например, contains ().

Ответы [ 6 ]

6 голосов
/ 25 мая 2011

Вы можете попробовать js_cols , библиотеку коллекций для JavaScript.

5 голосов
/ 28 ноября 2010

Основной задачей jQuery является DOM.Он не делает и не должен пытаться быть всем для всех, поэтому он не имеет особой поддержки коллекций.

Для карт и наборов я бы хотел вас бесстыдно указатьв направлении моих собственных реализаций этих: http://code.google.com/p/jshashtable/

Что касается списков, Array предоставляет большую часть того, что вам нужно.Как и большинство методов, которые могут потребоваться для массивов, вы можете собрать метод contains() в несколько строк (большинство из которых связаны с отсутствием поддержки IE <= 8 для метода <code>indexOf()):

Array.prototype.contains = Array.prototype.indexOf ?
    function(val) {
        return this.indexOf(val) > -1;
    } :
    function(val) {
        var i = this.length;
        while (i--) {
            if (this[i] === val) {
                return true;
            }
        }
        return false;
    };

["a", "b", "c"].contains("a"); // true
5 голосов
/ 28 ноября 2010

Не можете ли вы использовать плагин для сбора jquery.

http://plugins.jquery.com/project/Collection

4 голосов
/ 12 февраля 2012

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

1 голос
/ 28 ноября 2010

Поскольку в JavaScript есть как массивы [], так и ассоциативные массивы {}, большинство потребностей в структурах данных уже решены.Массив решает упорядоченный список, быстрый доступ по числовому индексу, в то время как ассоциативный массив можно считать неупорядоченным хэш-картой и решает быстрый доступ по строковым ключам.

Для меня это покрывает 95% моих потребностей в структуре данных.

0 голосов
/ 15 июля 2016

Если у вас есть свободное время, вы можете оформить заказ. https://github.com/somnathpanja/jscollection

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...