diff options
Diffstat (limited to 'addon-sdk/source/lib/sdk/util/array.js')
-rw-r--r-- | addon-sdk/source/lib/sdk/util/array.js | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/addon-sdk/source/lib/sdk/util/array.js b/addon-sdk/source/lib/sdk/util/array.js deleted file mode 100644 index 1d61a973e..000000000 --- a/addon-sdk/source/lib/sdk/util/array.js +++ /dev/null @@ -1,123 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -"use strict"; - -module.metadata = { - "stability": "experimental" -}; - -/** - * Returns `true` if given `array` contain given `element` or `false` - * otherwise. - * @param {Array} array - * Target array. - * @param {Object|String|Number|Boolean} element - * Element being looked up. - * @returns {Boolean} - */ -var has = exports.has = function has(array, element) { - // shorter and faster equivalent of `array.indexOf(element) >= 0` - return !!~array.indexOf(element); -}; -var hasAny = exports.hasAny = function hasAny(array, elements) { - if (arguments.length < 2) - return false; - if (!Array.isArray(elements)) - elements = [ elements ]; - return array.some(function (element) { - return has(elements, element); - }); -}; - -/** - * Adds given `element` to the given `array` if it does not contain it yet. - * `true` is returned if element was added otherwise `false` is returned. - * @param {Array} array - * Target array. - * @param {Object|String|Number|Boolean} element - * Element to be added. - * @returns {Boolean} - */ -var add = exports.add = function add(array, element) { - var result; - if ((result = !has(array, element))) - array.push(element); - - return result; -}; - -/** - * Removes first occurrence of the given `element` from the given `array`. If - * `array` does not contain given `element` `false` is returned otherwise - * `true` is returned. - * @param {Array} array - * Target array. - * @param {Object|String|Number|Boolean} element - * Element to be removed. - * @returns {Boolean} - */ -exports.remove = function remove(array, element) { - var result; - if ((result = has(array, element))) - array.splice(array.indexOf(element), 1); - - return result; -}; - -/** - * Produces a duplicate-free version of the given `array`. - * @param {Array} array - * Source array. - * @returns {Array} - */ -function unique(array) { - return array.reduce(function(result, item) { - add(result, item); - return result; - }, []); -}; -exports.unique = unique; - -/** - * Produce an array that contains the union: each distinct element from all - * of the passed-in arrays. - */ -function union() { - return unique(Array.concat.apply(null, arguments)); -}; -exports.union = union; - -exports.flatten = function flatten(array){ - var flat = []; - for (var i = 0, l = array.length; i < l; i++) { - flat = flat.concat(Array.isArray(array[i]) ? flatten(array[i]) : array[i]); - } - return flat; -}; - -function fromIterator(iterator) { - let array = []; - if (iterator.__iterator__) { - for (let item of iterator) - array.push(item); - } - else { - for (let item of iterator) - array.push(item); - } - return array; -} -exports.fromIterator = fromIterator; - -function find(array, predicate, fallback) { - var index = 0; - var count = array.length; - while (index < count) { - var value = array[index]; - if (predicate(value)) return value; - else index = index + 1; - } - return fallback; -} -exports.find = find; |