Array
Type: Array
Array方法和函数的集合。
另请参见:
Function: Array.each
用于遍历数组,或可迭代对象,如getElementsByTagName或函数的参数。
语法:
Array.each(iterable, fn[, bind]);
参数:
- iterable - (array)遍历的数组。
- fn - (function)处理每个元素的函数。
- bind - (object, optional)函数内可使用'this'作为该对象。欲了解更多信息,请参见:Function:bind。
参数:fn
语法:
fn(item, index, object)
参数:
- item - (mixed) 数组中的当前项。
- index - (number) 数组中的当前项的索引。如果是一个对象它是当前项的键名,而不是索引。
- object - (mixed) 执行些方法的数组/对象。
示例:
Array.each(['Sun', 'Mon', 'Tue'], function(day, index){
alert('name:' + day + ', index: ' + index);
}); // alerts 'name: Sun, index: 0', 'name: Mon, index: 1', etc.
另请参见:
Function: Array.clone
返回数组的副本。
语法:
var clone = Array.clone(myArray);
参数:
- myArray - (array)你要复制的数组。
返回:
(array) 传入数组的副本。
示例:
var myArray = ['red', 'blue', 'green'];
var otherArray = Array.clone(myArray);
var myArray[0] = 'yellow';
alert(myArray[0]); // alerts 'yellow'
alert(otherArray[0]) // alerts 'red'
Function: Array.from
将传入函数转化成一数组
语法:
var splatted = Array.from(obj);
参数:
- obj - (mixed) 任何类型的变量。
返回:
(array)如果传递的变量是一个数组,返回的数组。否则,返回一个仅包含传入变量的数组。
示例:
Array.from('hello'); // returns ['hello'].
Array.from(['a', 'b', 'c']); // returns ['a', 'b', 'c'].
Array method: each
在数组中的每个元素调用一个函数。
语法:
myArray.each(fn [bind]);
参数:
- fn - (function)此数组中的每一个元素都将执行此函数,并向函数传入当前元素和当前元素在数组中的索引.
- bind - (object, optional)将函数绑定在此对象上(在函数里可以用'this'代表此对象),详见Function:bind
参数:fn
语法
fn(item,index,array)
参数:
- item - (mixed)数组中的当前项。
- index - (number)数组中的当前项的索引。
- array - (array)传入数组
例子:
//Alerts "0 = apple", "1 = banana",等等
['apple', 'banana', 'lemon'].each(function(item, index){
alert(index + " = " + item);
}); //第二个参数可选,在这里没有使用
另请参见:
Array.each
MDC数组的forEach
注:
这种方法只适用于浏览器没有原生MDC数组的forEach支持。
Array method: invoke
返回一个数组,命名方法应用到数组的内容。
语法:
var arr = myArray.invoke(method[, arg, arg, arg ...])
参数:
- method - (string)此方法将应用到数组中的每一个项目。
- arg - (mixed)不限数目的方法传入到函数一对应的方法中。
返回:
- (array)method方法处理过的新数组.
示例:
var foo = [4, 8, 15, 16, 23, 42];
var bar = foo.invoke('limit', 10, 30); //bar is now [10, 10, 15, 16, 23, 30]
注:
被调用的方法是每一个元素的方法,如果方法不存在,那么将抛出一个错误。例如:
[0, false, 'string'].invoke('limit', 0, 10); // throws an error!
Array method: every
如果数组中的每个元素满足所提供的测试函数,则返回true,此方法仅适用于没有原生支持Array:every的浏览器。
语法:
var allPassed = myArray.every(fn[, bind]);
参数:
- fn - (function)测试每个元素的函数。
- bind - (object, optional)将函数绑定在此对象上(在函数里可以用'this'代表此对象),详见Function:bind
参数:fn
语法:
fn(item, index, array)
参数:
- item - (mixed)数组中的当前项。
- index - (number)数组中的当前项的索引。
- array - (array)传入数组。
返回:
- (boolean)如果数组中的每个元素满足测试函数,则返回true。否则,返回false。
例子:
var areAllBigEnough = [10, 4, 25, 100].every(function(item, index){
return item > 20;
}); // areAllBigEnough = false
另请参见:
Array method: filter
创建一个新的数组所有元素满足过滤函数返回true。此方法只提供给没有原生Array:filter支持的浏览器。
语法:
var filteredArray = myArray.filter(fn[, bind]);
参数:
- fn - (function)此函数测试数组的每一个元素,并向此函数传递每一项和此项的索引。
- bind - (object, optional)把函数绑定到此对象上(函数内部'this'代表到此对象),详见Function:bind
参数:fn
语法:
fn(item, index, array)
参数:
- item - (mixed)数组中的当前项。
- index - (number)数组中的当前项的索引。
- array - (array)传入数组。
返回:
- (array)的新的过滤阵。
例子:
var biggerThanTwenty = [10, 3, 25, 100].filter(function(item, index){
return item > 20;
}); // biggerThanTwenty = [25, 100]
另请参见:
Array method: clean
创建一个新的数组,包含数组中所有被定义的元素(不为null或undefined)。
语法:
var cleanedArray = myArray.clean();
返回:
- (array)过滤后的新数组
例子:
var myArray = [null, 1, 0, true, false, 'foo', undefined, ''];
myArray.clean() // returns [1, 0, true, false, 'foo', '']
Array method: indexOf
返回等于指定值的第一个元素的索引,返回-1如果没有发现,此方法只针对那些没有原生Array:indexOf方法的浏览器。
语法:
var index = myArray.indexOf(item[, from]);
返回:
- (number)等于指定的第一个元素的索引。如果没有找到,则返回-1。
参数:
- item - (object)要搜索的项的数组中。
- from - (number, optional: defaults to 0)从哪个索引开始搜索。
例子:
['apple', 'lemon', 'banana'].indexOf('lemon'); // returns 1
['apple', 'lemon'].indexOf('banana'); // returns -1
另请参见:
Array method: map
创建一个新的数组,此数组包含处理函数的所有返回值,此方法仅适用于原生Array:map不支持的浏览器。
语法:
fn(item, index, array)
参数:
- fn - (function)此函数用于为结果数组产生一新元素。
- bind - (object, optional)把函数绑定到此对象上(函数内部'this'代表到此对象),详见Function:bind
参数:fn
语法:
fn(item, index, array)
参数:
- item - (mixed)数组中的当前项。
- index - (number)数组中的当前项的索引。
- array - (array)传入数组。
返回:
- (array)映射后的新数组。
例子:
var timesTwo = [1, 2, 3].map(function(item, index){
return item * 2;
}); //timesTwo = [2, 4, 6];
另请参见:
Array method: some
返回true,如果在数组中的至少一种元素满足所提供的测试函数。此方法仅适用于原生Array:some不支持的浏览器。
语法:
var somePassed = myArray.some(fn[, bind]);
返回:
- (boolean)如果数组中至少有一个元素满足测试函数返回true。否则,返回false。
参数:
- fn - (function)的功能测试中的每个元素。此功能是通过在数组中的项目和它的索引。
- bind - (object, optional)把函数绑定到此对象上(函数内部'this'代表到此对象),详见Function:bind
参数:fn
语法:
fn(item, index, array)
参数:
- item - (mixed)数组中的当前项。
- index - (number)数组中的当前项的索引。
- array - (array)传入的数组。
例子:
var isAnyBigEnough = [10, 4, 25, 100].some(function(item, index){
return item > 20;
}); // isAnyBigEnough = true
另请参见:
Array method: associate
创建一个key-value对象,数组的当前内容为value,传入的数组为key。
语法:
var associated = myArray.associate(obj);
参数:
- obj - (array)作为新生成对象的键。
返回:
- (object)新生成的key-value对象
例子:
var animals = ['Cow', 'Pig', 'Dog', 'Cat'];
var sounds = ['Moo', 'Oink', 'Woof', 'Miao'];
sounds.associate(animals);
// returns {'Cow': 'Moo', 'Pig': 'Oink', 'Dog': 'Woof', 'Cat': 'Miao'}
Array method: link
接受一个(Key:function)对象。
语法:
var result = myArray.link(object);
参数:
- object - (object)Key:function对象,作为返回对象的模板。
返回:
- (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}
Array method: contains
测试一个元素是否在此数组中
语法:
var inArray = myArray.contains(item[, from]);
参数:
- item - (object)要测试的元素。
- from - (number, optional: defaults to 0)从哪个索引开始测试,默认从0。
返回:
- (boolean)如果数组包含指定的元素,则返回true,否则返回false。
例子:
['a', 'b', 'c'].contains('a'); // returns true
['a', 'b', 'c'].contains('d'); // returns false
另请参见:
Array method: append
追加传递的数组在当前数组的最后。
语法:
var myArray = myArray.append(otherArray);
参数:
- otherArray - (array)要追加的数组。
返回:
- (array)追加后的新数组。
例子:
var myOtherArray = ['green', 'yellow'];
['red', 'blue'].append(myOtherArray); // returns ['red', 'blue', 'green', 'yellow'];
[0, 1, 2].append([3, [4]]); // [0, 1, 2, 3, [4]]
Array method: getLast
返回从数组中的最后一个项目。
语法:
myArray.getLast();
返回:
- (mixed)这个数组中的最后一项。
- (null)如果该数组为空,则返回null。
例子:
['Cow', 'Pig', 'Dog', 'Cat'].getLast(); // returns 'Cat'
Array method: getRandom
从数组中返回一个随机项。
语法:
myArray.getRandom();
返回:
- (mixed)随机从这个数组中返回一项。如果这个数组为空,则返回null。
例子:
['Cow', 'Pig', 'Dog', 'Cat'].getRandom(); // returns one of the items
Array method: include
push一个元素,如果它在数组中不存在(大小写类型敏感)。
语法:
myArray.include(item);
参数:
- item - (object)要增加的元素。
返回:
- (array)包含新元素的数组。
例子:
['Cow', 'Pig', 'Dog'].include('Cat'); // returns ['Cow', 'Pig', 'Dog', 'Cat']
['Cow', 'Pig', 'Dog'].include('Dog'); // returns ['Cow', 'Pig', 'Dog']
注:
如果你想push一个元素即使它已经存在使用原生Javascript:
myArray.push(item);
Array method: combine
联合两个数组,不允许重复,大小写类型敏感。
语法:
myArray.combine(array);
参数:
- array - (array)需要联合的数组。
返回:
- (array)联合后的新数组。
例子:
var animals = ['Cow', 'Pig', 'Dog'];
animals.combine(['Cat', 'Dog']); //animals = ['Cow', 'Pig', 'Dog', 'Cat'];
Array method: erase
从数组中删除一个或多个相同项。
语法:
myArray.erase(item);
参数:
- item - (object)要删除的项。
返回:
- (array)删除指定项后的数组。
例子:
['Cow', 'Pig', 'Dog', 'Cat', 'Dog'].erase('Dog') // returns ['Cow', 'Pig', 'Cat']
['Cow', 'Pig', 'Dog'].erase('Cat') // returns ['Cow', 'Pig', 'Dog']
Array method: empty
清空一个数组。
语法:
myArray.empty();
返回:
- (array)返回清空后的数组。
例子:
var myArray = ['old', 'data'];
myArray.empty(); //myArray is now []
Array method: flatten
转换一个多维数组到一维数组。
语法:
myArray.flatten();
返回:
- (array)转换后的一维数组。
例子:
var myArray = [1,2,3,[4,5, [6,7]], [[[8]]]];
var newArray = myArray.flatten(); //newArray is [1,2,3,4,5,6,7,8]
Array method: pick
返回数组中第一个已定义的元素,或返回null。
语法:
var picked = [var1, var2, var3].pick();
返回:
- (mixed)第一个已定义的元素。
- (null)如果所有元素是null或undefined,则返回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.'
注:
这是相当于MooTools 1.2的$pick。
Array method: hexToRgb
转换为十六进制的颜色到RGB。输入数组必须是以下格式十六进制的颜色:['FF','FF','FF']
语法:
myArray.hexToRgb([array]);
参数:
- array - (boolean, optional)如果为true,将输出一个数组(e.g.[255,51,0]),否则输出一个字符串(e.g."rgb(255, 51, 0)")。
返回:
- (string)字符串,rgb格式的颜色。
- (array)如果传入参数为true,将返回一个数组。
例子:
['11', '22', '33'].hexToRgb(); // returns 'rgb(17, 34, 51)'
['11', '22', '33'].hexToRgb(true); // returns [17, 34, 51]
另请参见:
Array method: rgbToHex
转换rgb格式到十六进制格式。输入的rgb必须是以下格式:[255, 255, 255]或[255, 255, 255, 1].
语法:
myArray.rgbToHex([array]);
参数:
- array - (boolean, optional)如果传入true,将输出一个数组(e.g.['FF','33','00']),否则返回一个string(e.g. '#ff3300')。
返回:
- (string)一个十六进制的颜色,或'transparent'如果rgba的第四个值是0。
- (array)如查输入参数为真,则返回一数组。
例子:
[17, 34, 51].rgbToHex(); // returns '#112233'
[17, 34, 51].rgbToHex(true); // returns ['11', '22', '33']
[17, 34, 51, 0].rgbToHex(); // returns 'transparent'