A collection of Array methods and functions.
Used to iterate through arrays, or iterables that are not regular arrays, such as built in getElementsByTagName calls or arguments of a function.
Array.each(iterable, fn[, bind]);
fn(item, index, object)
Array.each(['Sun', 'Mon', 'Tue'], function(day, index){ alert('name:' + day + ', index: ' + index); }); // alerts 'name: Sun, index: 0', 'name: Mon, index: 1', etc.
This is an array-specific equivalent of $each from MooTools 1.2.
Returns a copy of the passed array.
var clone = Array.clone(myArray);
var myArray = ['red', 'blue', 'green']; var otherArray = Array.clone(myArray); var myArray[0] = 'yellow'; alert(myArray[0]); // alerts 'yellow' alert(otherArray[0]) // alerts 'red'
This is an array-specific equivalent of $unlink from MooTools 1.2.
Converts the argument passed in to an array if it is defined and not already an array.
var splatted = Array.from(obj);
Array.from('hello'); // returns ['hello']. Array.from(['a', 'b', 'c']); // returns ['a', 'b', 'c'].
This is equivalent to $splat from MooTools 1.2, with the exception of Array-like Objects such as NodeList or FileList which Array.from
does transform in
Arrays and $splat
not.
Calls a function for each element in the array.
myArray.each(fn[, bind]);
fn(item, index, array)
//Alerts "0 = apple", "1 = banana", and so on: ['apple', 'banana', 'lemon'].each(function(item, index){ alert(index + " = " + item); }); //The optional second argument for binding isn't used here.
Returns an array with the named method applied to the array's contents.
var arr = myArray.invoke(method[, arg, arg, arg ...])
var foo = [4, 8, 15, 16, 23, 42]; var bar = foo.invoke('limit', 10, 30); //bar is now [10, 10, 15, 16, 23, 30]
The method that is invoked is a method of each of the items. If the method does not exist, then an error will be thrown. For example:
[0, false, 'string'].invoke('limit', 0, 10); // throws an error!
Returns true if every element in the array satisfies the provided testing function. This method is provided only for browsers without native Array:every support.
var allPassed = myArray.every(fn[, bind]);
fn(item, index, array)
var areAllBigEnough = [10, 4, 25, 100].every(function(item, index){ return item > 20; }); // areAllBigEnough = false
Creates a new array with all of the elements of the array for which the provided filtering function returns true. This method is provided only for browsers without native Array:filter support.
var filteredArray = myArray.filter(fn[, bind]);
fn(item, index, array)
var biggerThanTwenty = [10, 3, 25, 100].filter(function(item, index){ return item > 20; }); // biggerThanTwenty = [25, 100]
Creates a new array with all of the elements of the array which are defined (i.e. not null or undefined).
var cleanedArray = myArray.clean();
var myArray = [null, 1, 0, true, false, 'foo', undefined, '']; myArray.clean() // returns [1, 0, true, false, 'foo', '']
Returns the index of the first element within the array equal to the specified value, or -1 if the value is not found. This method is provided only for browsers without native Array:indexOf support.
var index = myArray.indexOf(item[, from]);
['apple', 'lemon', 'banana'].indexOf('lemon'); // returns 1 ['apple', 'lemon'].indexOf('banana'); // returns -1
Creates a new array with the results of calling a provided function on every element in the array. This method is provided only for browsers without native Array:map support.
var mappedArray = myArray.map(fn[, bind]);
fn(item, index, array)
var timesTwo = [1, 2, 3].map(function(item, index){ return item * 2; }); //timesTwo = [2, 4, 6];
Returns true if at least one element in the array satisfies the provided testing function. This method is provided only for browsers without native Array:some support.
var somePassed = myArray.some(fn[, bind]);
fn(item, index, array)
var isAnyBigEnough = [10, 4, 25, 100].some(function(item, index){ return item > 20; }); // isAnyBigEnough = true
Creates an object with key-value pairs based on the array of keywords passed in and the current content of the array.
var associated = myArray.associate(obj);
var animals = ['Cow', 'Pig', 'Dog', 'Cat']; var sounds = ['Moo', 'Oink', 'Woof', 'Miao']; sounds.associate(animals); // returns {'Cow': 'Moo', 'Pig': 'Oink', 'Dog': 'Woof', 'Cat': 'Miao'}
Accepts an object of key / function pairs to assign values.
var result = myArray.link(object);
var el = document.createElement('div'); var arr2 = [100, 'Hello', {foo: 'bar'}, el, false]; arr2.link({ myNumber: Type.isNumber, myElement: Type.isElement, myObject: Type.isObject, myString: Type.isString, myBoolean: function(obj){ return obj != null; } }); // returns {myNumber: 100, myElement: el, myObject: {foo: 'bar'}, myString: 'Hello', myBoolean: false}
Tests an array for the presence of an item.
var inArray = myArray.contains(item[, from]);
['a', 'b', 'c'].contains('a'); // returns true ['a', 'b', 'c'].contains('d'); // returns false
Appends the passed array to the end of the current array.
var myArray = myArray.append(otherArray);
var myOtherArray = ['green', 'yellow']; ['red', 'blue'].append(myOtherArray); // returns ['red', 'blue', 'green', 'yellow']; [0, 1, 2].append([3, [4]]); // [0, 1, 2, 3, [4]]
This is an array-specific equivalent of $extend from MooTools 1.2.
Returns the last item from the array.
myArray.getLast();
['Cow', 'Pig', 'Dog', 'Cat'].getLast(); // returns 'Cat'
Returns a random item from the array.
myArray.getRandom();
['Cow', 'Pig', 'Dog', 'Cat'].getRandom(); // returns one of the items
Pushes the passed element into the array if it's not already present (case and type sensitive).
myArray.include(item);
['Cow', 'Pig', 'Dog'].include('Cat'); // returns ['Cow', 'Pig', 'Dog', 'Cat'] ['Cow', 'Pig', 'Dog'].include('Dog'); // returns ['Cow', 'Pig', 'Dog']
If you want to push the passed element even if it's already present, use the vanilla javascript:
myArray.push(item);
Combines an array with all the items of another. Does not allow duplicates and is case and type sensitive.
myArray.combine(array);
var animals = ['Cow', 'Pig', 'Dog']; animals.combine(['Cat', 'Dog']); //animals = ['Cow', 'Pig', 'Dog', 'Cat'];
Removes all occurrences of an item from the array.
myArray.erase(item);
['Cow', 'Pig', 'Dog', 'Cat', 'Dog'].erase('Dog') // returns ['Cow', 'Pig', 'Cat'] ['Cow', 'Pig', 'Dog'].erase('Cat') // returns ['Cow', 'Pig', 'Dog']
Empties an array.
myArray.empty();
var myArray = ['old', 'data']; myArray.empty(); //myArray is now []
Flattens a multidimensional array into a single array.
myArray.flatten();
var myArray = [1,2,3,[4,5, [6,7]], [[[8]]]]; var newArray = myArray.flatten(); //newArray is [1,2,3,4,5,6,7,8]
Returns the first defined value of the array passed in, or null.
var picked = [var1, var2, var3].pick();
null
or undefined
, returns null
.function say(infoMessage, errorMessage){ alert([errorMessage, infoMessage, 'There was no message supplied.'].pick()); //or more MooTools 1.2 style using Generics Array.pick([errorMessage, infoMessage, 'There was no message supplied.']); } say(); // alerts 'There was no message supplied.' say('This is an info message.'); // alerts 'This is an info message.' say('This message will be ignored.', 'This is the error message.'); // alerts 'This is the error message.'
This is equivalent to $pick from MooTools 1.2.
Converts an hexadecimal color value to RGB. Input array must be the following hexadecimal color format. ['FF', 'FF', 'FF']
myArray.hexToRgb([array]);
['11', '22', '33'].hexToRgb(); // returns 'rgb(17, 34, 51)' ['11', '22', '33'].hexToRgb(true); // returns [17, 34, 51]
Converts an RGB color value to hexadecimal. Input array must be in one of the following RGB color formats. [255, 255, 255], or [255, 255, 255, 1]
myArray.rgbToHex([array]);
[17, 34, 51].rgbToHex(); // returns '#112233' [17, 34, 51].rgbToHex(true); // returns ['11', '22', '33'] [17, 34, 51, 0].rgbToHex(); // returns 'transparent'
© Linux.ria.ua, 2008-2024 |