Inserts a value into a sorted array. The array is not modified if the
value is already present.
Arguments:
Returns: boolean
True if an element was inserted.
|
code » | ||||||
Removes a value from a sorted array.
Arguments:
Returns: boolean
True if an element was removed.
|
code » | ||||||
Searches the specified array for the specified target using the binary
search algorithm. If no opt_compareFn is specified, elements are compared
using
goog.array.defaultCompare , which compares the elements
using the built in < and > operators. This will produce the expected
behavior for homogeneous arrays of String(s) and Number(s). The array
specified must be sorted in ascending order (as defined by the
comparison function). If the array is not sorted, results are undefined.
If the array contains multiple instances of the specified target value, any
of these instances may be found.
Runtime: O(log n)
Arguments:
Returns: number
Lowest index of the target value if found, otherwise
(-(insertion point) - 1). The insertion point is where the value should
be inserted into arr to preserve the sorted property. Return value >= 0
iff target is found.
|
code » | ||||||
Implementation of a binary search algorithm which knows how to use both
comparison functions and evaluators. If an evaluator is provided, will call
the evaluator with the given optional data object, conforming to the
interface defined in binarySelect. Otherwise, if a comparison function is
provided, will call the comparison function against the given data object.
This implementation purposefully does not use goog.bind or goog.partial for
performance reasons.
Runtime: O(log n)
Arguments:
Returns: number
Lowest index of the target value if found, otherwise
(-(insertion point) - 1). The insertion point is where the value should
be inserted into arr to preserve the sorted property. Return value >= 0
iff target is found.
|
code » | ||||||
Selects an index in the specified array using the binary search algorithm.
The evaluator receives an element and determines whether the desired index
is before, at, or after it. The evaluator must be consistent (formally,
goog.array.map(goog.array.map(arr, evaluator, opt_obj), goog.math.sign)
must be monotonically non-increasing).
Runtime: O(log n)
Arguments:
Returns: number
Index of the leftmost element matched by the evaluator, if
such exists; otherwise (-(insertion point) - 1). The insertion point is
the index of the first element for which the evaluator returns negative,
or arr.length if no such element exists. The return value is non-negative
iff a match is found.
|
code » | ||||||
Splits an array into disjoint buckets according to a splitting function.
Arguments:
Returns: !Object
An object, with keys being all of the unique return values
of sorter, and values being arrays containing the items for
which the splitter returned that key.
|
code » | ||||||
![]()
Clears the array.
Arguments:
|
code » | ||||||
Does a shallow copy of an array.
|
code » | ||||||
3-way array compare function.
Arguments:
Returns: number
Negative number, zero, or a positive number depending on
whether the first argument is less than, equal to, or greater than the
second.
|
code » | ||||||
Returns a new array that is the result of joining the arguments. If arrays
are passed then their items are added, however, if non-arrays are passed they
will be added to the return array as is.
Note that ArrayLike objects will be added as is, rather than having their
items added.
goog.array.concat([1, 2], [3, 4]) -> [1, 2, 3, 4]
goog.array.concat(0, [1, 2]) -> [0, 1, 2]
goog.array.concat([1, 2], null) -> [1, 2, null]
There is bug in all current versions of IE (6, 7 and 8) where arrays created
in an iframe become corrupted soon (not immediately) after the iframe is
destroyed. This is common if loading data via goog.net.IframeIo, for example.
This corruption only affects the concat method which will start throwing
Catastrophic Errors (#-2147418113).
See http://endoflow.com/scratch/corrupted-arrays.html for a test case.
Internally goog.array should use this, so that all methods will continue to
work on these broken array objects.
Arguments:
Returns: !Array
The new resultant array.
|
code » | ||||||
Whether the array contains the given object.
Arguments:
Returns: boolean
true if obj is present.
|
code » | ||||||
Counts the array elements that fulfill the predicate, i.e. for which the
callback function returns true. Skips holes in the array.
Arguments:
Returns: number
The number of the matching elements.
|
code » | ||||||
Compares its two arguments for order, using the built in < and >
operators.
Arguments:
Returns: number
A negative number, zero, or a positive number as the first
argument is less than, equal to, or greater than the second.
|
code » | ||||||
Compares its two arguments for equality, using the built in === operator.
Arguments:
Returns: boolean
True if the two arguments are equal, false otherwise.
|
code » | ||||||
Compares two arrays for equality. Two arrays are considered equal if they
have the same length and their corresponding elements are equal according to
the comparison function.
Arguments:
Returns: boolean
Whether the two arrays are equal.
|
code » | ||||||
Call f for each element of an array. If all calls return true, every()
returns true. If any call returns false, every() returns false and
does not continue to check the remaining elements.
See
http://tinyurl.com/developer-mozilla-org-array-every
Arguments:
Returns: boolean
false if any element fails the test.
|
code » | ||||||
![]()
Extends an array with another array, element, or "array like" object.
This function operates 'in-place', it does not create a new Array.
Example:
var a = [];
goog.array.extend(a, [0, 1]);
a; // [0, 1]
goog.array.extend(a, 2);
a; // [0, 1, 2]
Arguments:
|
code » | ||||||
Calls a function for each element in an array, and if the function returns
true adds the element to a new array.
See
http://tinyurl.com/developer-mozilla-org-array-filter
Arguments:
|
code » | ||||||
![]()
Search an array for the first element that satisfies a given condition and
return that element.
Arguments:
Returns: ?T
The first array element that passes the test, or null if no
element is found.
|
code » | ||||||
Search an array for the first element that satisfies a given condition and
return its index.
Arguments:
Returns: number
The index of the first array element that passes the test,
or -1 if no element is found.
|
code » | ||||||
Search an array (in reverse order) for the last element that satisfies a
given condition and return its index.
Arguments:
Returns: number
The index of the last array element that passes the test,
or -1 if no element is found.
|
code » | ||||||
![]()
Search an array (in reverse order) for the last element that satisfies a
given condition and return that element.
Arguments:
Returns: ?T
The last array element that passes the test, or null if no
element is found.
|
code » | ||||||
Returns an array consisting of every argument with all arrays
expanded in-place recursively.
Arguments:
Returns: !Array
An array containing the flattened values.
|
code » | ||||||
![]()
Calls a function for each element in an array. Skips holes in the array.
See
http://tinyurl.com/developer-mozilla-org-array-foreach
Arguments:
|
code » | ||||||
![]()
Calls a function for each element in an array, starting from the last
element rather than the first.
Arguments:
|
code » | ||||||
Returns the index of the first element of an array with a specified value, or
-1 if the element is not present in the array.
See
http://tinyurl.com/developer-mozilla-org-array-indexof
|
code » | ||||||
![]()
Pushes an item into an array, if it's not already in the array.
Arguments:
|
code » | ||||||
![]()
Inserts at the given index of the array, all elements of another array.
Arguments:
|
code » | ||||||
![]()
Inserts an object at the given index of the array.
Arguments:
|
code » | ||||||
![]()
Inserts an object into an array before a specified object.
Arguments:
|
code » | ||||||
Whether the array is empty.
Arguments:
Returns: boolean
true if empty.
|
code » | ||||||
Tells if the array is sorted.
Arguments:
Returns: boolean
Whether the array is sorted.
|
code » | ||||||
Returns a new array that contains the contents of all the arrays passed.
Arguments:
|
code » | ||||||
![]()
Returns the last element in an array without removing it.
Same as goog.array.peek.
Arguments:
Returns: T
Last item in array.
|
code » | ||||||
Returns the index of the last element of an array with a specified value, or
-1 if the element is not present in the array.
See
http://tinyurl.com/developer-mozilla-org-array-lastindexof
Arguments:
Returns: number
The index of the last matching array element.
|
code » | ||||||
Calls a function for each element in an array and inserts the result into a
new array.
See
http://tinyurl.com/developer-mozilla-org-array-map
Arguments:
|
code » | ||||||
![]()
Moves one item of an array to a new position keeping the order of the rest
of the items. Example use case: keeping a list of JavaScript objects
synchronized with the corresponding list of DOM elements after one of the
elements has been dragged to a new position.
|
code » | ||||||
![]()
Returns the last element in an array without removing it.
Same as goog.array.last.
Arguments:
Returns: T
Last item in array.
|
code » | ||||||
Creates a range of numbers in an arithmetic progression.
Range takes 1, 2, or 3 arguments:
range(5) is the same as range(0, 5, 1) and produces [0, 1, 2, 3, 4] range(2, 5) is the same as range(2, 5, 1) and produces [2, 3, 4] range(-2, -5, -1) produces [-2, -3, -4] range(-2, -5, 1) produces [], since stepping by 1 wouldn't ever reach -5.
Arguments:
|
code » | ||||||
![]()
Passes every element of an array into a function and accumulates the result.
See
http://tinyurl.com/developer-mozilla-org-array-reduce
For example:
var a = [1, 2, 3, 4];
goog.array.reduce(a, function(r, v, i, arr) {return r + v;}, 0);
returns 10
Arguments:
Returns: R
Result of evaluating f repeatedly across the values of the array.
|
code » | ||||||
![]()
Passes every element of an array into a function and accumulates the result,
starting from the last element and working towards the first.
See
http://tinyurl.com/developer-mozilla-org-array-reduceright
For example:
var a = ['a', 'b', 'c'];
goog.array.reduceRight(a, function(r, v, i, arr) {return r + v;}, '');
returns 'cba'
Arguments:
Returns: R
Object returned as a result of evaluating f repeatedly across the
values of the array.
|
code » | ||||||
Removes the first occurrence of a particular value from an array.
|
code » | ||||||
Removes from an array the element at index i
|
code » | ||||||
![]()
Removes all duplicates from an array (retaining only the first
occurrence of each array element). This function modifies the
array in place and doesn't change the order of the non-duplicate items.
For objects, duplicates are identified as having the same unique ID as
defined by
goog.getUid .
Alternatively you can specify a custom hash function that returns a unique
value for each item in the array it should consider unique.
Runtime: N,
Worstcase space: 2N (no dupes)
Arguments:
|
code » | ||||||
Removes the first value that satisfies the given condition.
Arguments:
Returns: boolean
True if an element was removed.
|
code » | ||||||
Returns an array consisting of the given value repeated N times.
|
code » | ||||||
Rotates an array in-place. After calling this method, the element at
index i will be the element previously at index (i - n) %
array.length, for all values of i between 0 and array.length - 1,
inclusive.
For example, suppose list comprises [t, a, n, k, s]. After invoking
rotate(array, 1) (or rotate(array, -4)), array will comprise [s, t, a, n, k].
|
code » | ||||||
![]()
Shuffles the values in the specified array using the Fisher-Yates in-place
shuffle (also known as the Knuth Shuffle). By default, calls Math.random()
and so resets the state of that random number generator. Similarly, may reset
the state of the any other specified random number generator.
Runtime: O(n)
Arguments:
|
code » | ||||||
Returns a new array from a segment of an array. This is a generic version of
Array slice. This means that it might work on other objects similar to
arrays, such as the arguments object.
|
code » | ||||||
Calls f for each element of an array. If any call returns true, some()
returns true (without checking the remaining elements). If all calls
return false, some() returns false.
See
http://tinyurl.com/developer-mozilla-org-array-some
Arguments:
Returns: boolean
true if any element passes the test.
|
code » | ||||||
![]()
Sorts the specified array into ascending order. If no opt_compareFn is
specified, elements are compared using
goog.array.defaultCompare , which compares the elements using
the built in < and > operators. This will produce the expected behavior
for homogeneous arrays of String(s) and Number(s), unlike the native sort,
but will give unpredictable results for heterogenous lists of strings and
numbers with different numbers of digits.
This sort is not guaranteed to be stable.
Runtime: Same as Array.prototype.sort
Arguments:
|
code » | ||||||
![]()
Sorts an array of objects by the specified object key and compare
function. If no compare function is provided, the key values are
compared in ascending order using
goog.array.defaultCompare .
This won't work for keys that get renamed by the compiler. So use
{'foo': 1, 'bar': 2} rather than {foo: 1, bar: 2}.
|
code » | ||||||
Adds or removes elements from an array. This is a generic version of Array
splice. This means that it might work on other objects similar to arrays,
such as the arguments object.
Arguments:
|
code » | ||||||
![]()
Sorts the specified array into ascending order in a stable way. If no
opt_compareFn is specified, elements are compared using
goog.array.defaultCompare , which compares the elements using
the built in < and > operators. This will produce the expected behavior
for homogeneous arrays of String(s) and Number(s).
Runtime: Same as Array.prototype.sort , plus an additional
O(n) overhead of copying the array twice.
Arguments:
|
code » | ||||||
Converts an object to an array.
Arguments:
Returns: !Array.<T>
The object converted into an array. If object has a
length property, every property indexed with a non-negative number
less than length will be included in the result. If object does not
have a length property, an empty array will be returned.
|
code » | ||||||
Creates a new object built from the provided array and the key-generation
function.
Arguments:
|
code » | ||||||
Creates a new array for which the element at position i is an array of the
ith element of the provided arrays. The returned array will only be as long
as the shortest array provided; additional values are ignored. For example,
the result of zipping [1, 2] and [3, 4, 5] is [[1,3], [2, 4]].
This is similar to the zip() function in Python. See
http://docs.python.org/library/functions.html#zip
|
code » |