util/list

Experimental

Building blocks for composing lists.

Globals

Constructors

List(element1, element2, ...)

Constructor can takes any number of elements and creates an instance of List populated with the specified elements.

Parameters

element1 : Object|String|Number

element2 : Object|String|Number

... : Object|String|Number

Functions

addListItem(list, item)

Function adds a item to a List.

removeListItem(list, item)

Function removes an item from a List

List

An ordered collection (also known as a sequence) disallowing duplicate elements. List is composed out of Iterable, therefore it provides custom enumeration behavior that is similar to array (enumerates only on the elements of the list).

List is a base trait and is meant to be part of a composition, since all of its API is private except for the length property.

Examples:

var { List } = require("sdk/util/list");
var MyList = List.compose({
  add: function add(item1, item2, /*item3...*/) {
    Array.slice(arguments).forEach(this._add.bind(this));
  },
  remove: function remove(item1, item2, /*item3...*/) {
    Array.slice(arguments).forEach(this._remove.bind(this));
  }
});
MyList('foo', 'bar', 'baz').length == 3;        // true
new MyList('new', 'keyword').length == 2;       // true
MyList.apply(null, [1, 2, 3]).length == 3;      // true
let list = MyList();
list.length == 0;                               // true
list.add(1, 2, 3) == 3;                         // true

Properties

length

Number of elements in this list.