关于ExtJS对javascript中的Array的扩展。能够參考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893
因为Array中的方法过多。将当中的部分方法设计实例进行学习。实例地址:http://blog.csdn.net/z1137730824/article/details/38797257
(1)Ext.Array中的方法
过滤掉数组里的空值,空值的定义见 Ext.isEmpty
參见 filter
Parameters
- array : Array
Returns
- Array
结果
Ext.Array
克隆一个数组,而不引用原数组,注意着不同于Ext.clone。Ext.clone不递归克隆。
它把Array.prototype.slice.call(array)方法简化 成一个方便的、easy记住的方法。
Parameters
- array : Array
数组
Returns
- Array
克隆的数组
Ext.Array
contains( Array array, Object item )
: Boolean
检查数组中是否包括给定元素
Parameters
Returns
- Boolean
数组包括元素则为true,否则为false
Ext.Array
difference( Array arrayA, Array arrayB )
: Array
返回 A-B的差异集合,从A中减去全部B中存在的元素
Parameters
Returns
- Array
A中不同于B的元素
Ext.Array
each( Array/NodeList/Object iterable, Function fn,
[Object scope], [Boolean reverse] )
: Boolean
迭代一个数组或是可迭代的值,在每一个元素上调用给定的回调函数
var countries = [‘Vietnam‘, ‘Singapore‘, ‘United States‘, ‘Russia‘];
Ext.Array.each(countries, function(name, index, countriesItSelf) {
console.log(name);
});
var sum = function() {
var sum = 0;
Ext.Array.each(arguments, function(value) {
sum += value;
});
return sum;
};
sum(1, 2, 3); // 返回 6
在回调函数中返回false,就可以停止迭代过程。
Ext.Array.each(countries, function(name, index, countriesItSelf) {
if (name === ‘Singapore‘) {
return false; // 此处中止
}
});
Ext.each 是 Ext.Array.each 的别名
Parameters
- iterable : Array/NodeList/Object
将要迭代的值。 假设这个參数不可迭代,回调函数将仅仅调用一次。
- fn : Function
回调函数. 假设返回false, 迭代将停止, 方法返回当前的索引.
Parameters
Returns
- Boolean
返回false来停止迭代
- Boolean
- scope : Object (optional)
指定函数运行的(
this
引用)作用域 - reverse : Boolean (optional)
反转迭代的顺序(从尾到头循环) 默觉得false
Returns
- Boolean
參见
fn
參数的描写叙述.
Ext.Array
erase( Array array, Number index, Number removeCount )
: Array
移除数组中的多个元素。这个功能相当于Array的splice方法。
可是避免了IE8的splice函数bug。不会复制移除的元素并按次序返回它们。 (由于它们通常被忽略)
Parameters
Returns
- Array
处理后的数组
Ext.Array
every( Array array, Function fn, Object scope )
: Boolean
在数组的每一个元素上运行指定函数。直到函数返回一个false值 假设某个元素上返回了false值,本函数马上返回false 否则函数返回true
Parameters
Returns
- Boolean
假设回调函数没有返回false值则为true
Ext.Array
filter( Array array, Function fn, Object scope )
: Array
Creates a new array with all of the elements of this array for which the provided filtering function returns true.
Parameters
Returns
- Array
结果
Ext.Array
flatten( Array array )
: Array
递归将数组和数组中的元素转换为1维数组。
Parameters
- array : Array
数组
Returns
- Array
一维数组
Ext.Array
forEach( Array array, Function fn,
[Object scope] )
迭代一个数组。在每一个元素上调用给定的回调函数。注意假设原生的Array.prototype.forEach被支持, 这个函数将托付到Array.prototype.forEach。
它不支持像each一样,
通过返回一个false来停止迭代。 因此,其性能在现代的浏览器中会比each更好。
Parameters
Ext.Array
from( Object value,
[Boolean newReference] ) : Array
将一个值转换为一个数组,函数返回:
- 一个空数组,假设给定的值是
undefined
或null
- 数组本身,假设已经是一个数组
- 一个数组的拷贝,假设给定的值是 iterable (arguments,
NodeList 等等) - 一个包括给定值作为唯一元素的数组 ,其它情况
Parameters
Returns
- Array
数组
Ext.Array
include( Array array, Object item )
把一个元素插入到数组,假设它不存在于这个数组
Parameters
Ext.Array
indexOf( Array array, Object item,
[Number from] ) : Number
查找指定元素在数组中的索引位置。 补充IE中缺少的arrayPrototype.indexOf原生方法。
Parameters
Returns
- Number
元素在数组中的索引位置(找不到时为-1)
Ext.Array
insert( Array array, Number index, Array items )
: Array
在数组中插入多个元素
Parameters
Returns
- Array
插入后的数组
Ext.Array
intersect( Array array1, Array array2, Array etc )
: Array
返回多个数组的公共交集
Parameters
Returns
- Array
交集
Ext.Array
map( Array array, Function fn, Object scope )
: Array
通过在数组的每一个元素中调用一个特定函数。用结果创建一个新数组,
Parameters
Returns
- Array
结果
Ext.Array
max( Array/NodeList
array, [Function comparisonFn] ) : Object
返回数组中的最大值
Parameters
- array : Array/NodeList
数组
- comparisonFn : Function (optional)
比較函数 假设被忽略,则使用 ">" 操作符。
注意: gt = 1; eq = 0; lt = -1
Returns
- Object
maxValue 最大值
Ext.Array
计算数组中元素的平均值
Parameters
- array : Array
数组
Returns
- Number
平均值
Ext.Array
merge( Array array1, Array array2, Array etc )
: Array
合并多个数组中的不反复元素到一个数组
Parameters
Returns
- Array
合并的数组
Ext.Array
min( Array/NodeList
array, [Function comparisonFn] ) : Object
返回数组中的最小值
Parameters
- array : Array/NodeList
数组
- comparisonFn : Function (optional)
比較函数 假设被忽略,则使用 "<" 操作符。 注意: gt = 1; eq = 0; lt = -1
Returns
- Object
minValue 最小值
Ext.Array
pluck( Array/NodeList
array, String propertyName ) : Array
获取数组中每一个元素的制定属性值. 演示样例:
Ext.Array.pluck(Ext.query("p"), "className"); // [el1.className, el2.className, ..., elN.className]
Parameters
Returns
Ext.Array
push( Array target, Object...
elements ) : Array
在数组的末尾加入新的元素
參数可能是一个元素集合、也可能是多个元素集合的数组。假设參数列表中存在一个数组, 则它的全部元素都将被加入到给定数组的末尾。
Parameters
Returns
- Array
处理后的数组
Ext.Array
remove( Array array, Object item )
: Array
移除数组中的制定元素
Parameters
Returns
- Array
数组本身
Ext.Array
replace( Array array, Number index, Number ,
[Array insert] ) : Array
替换数组里的多个元素。这个功能相当于Array的splice方法。 可是避免了IE8的splice函数bug。并且更便于使用。 由于它插入一个元素的数组,而不是一个可变參数列表。
Parameters
Returns
- Array
处理后的数组
Ext.Array
slice( Array array, Number begin, Number end )
: Array
返回一个数组中一部分的浅表复制。 等价于 原生方法 "Array.prototype.slice.call(array, begin, end)"。
常常被使用于数组 作为arguments,arguments对象没有提供slice方法, 可是能够作为上下文对象使用 Array.prototype.slice方法。
Parameters
- array : Array
数组 (或 arguments 对象)
- begin : Number
起始索引。为负值则 从数组的末尾计算位移
- end : Number
结束索引。
复制元素不包含结尾处的元素。
为负值则从数组的末尾计算位移,假设结尾被省略, 数组中一直到结尾的全部元素将被复制。
Returns
- Array
数组
Ext.Array
some( Array array, Function fn, Object scope )
: Boolean
在数组的每一个元素上运行指定函数。直到函数返回一个true值 假设某个元素上返回了true值,本函数马上返回true
Parameters
Returns
- Boolean
假设回调函数返回一个true值则为true
Ext.Array
sort( Array array,
[Function sortFn] ) : Array
排序数组中的元素 默认使用字母表。按升序排序
Parameters
Returns
- Array
排序后的数组
Ext.Array
splice( Array array, Number index, Number removeCount, Object...
elements ) : Array
替换数组里的多个元素。这个功能相当于Array的splice方法。
可是避免了IE8的splice函数bug,除了第一个argument參数以外, 与splice方法的签名同样。 removeCount后面的全部參数都将被插入到指定位置。
Parameters
- array : Array
数组
- index : Number
要操作的索引位置
- removeCount : Number
要移除的元素数量(能够为0)
- elements : Object...
要加入到数组的多个元素.
假设没有指定不论什么元素。splice简化为从数组移除元素。
Returns
- Array
处理后的数组
Ext.Array
计算数组中元素的和
Parameters
- array : Array
数组
Returns
- Number
和
Ext.Array
toArray( Object iterable,
[Number start], [Number end] )
: Array
将一个可迭代元素(具有数字下标和length属性)转换为一个真正的数组
function test() {
var args = Ext.Array.toArray(arguments),
fromSecondToLastArgs = Ext.Array.toArray(arguments, 1);
alert(args.join(‘ ‘));
alert(fromSecondToLastArgs.join(‘ ‘));
}
test(‘just‘, ‘testing‘, ‘here‘); // 提示 ‘just testing here‘;
// 提示 ‘testing here‘;
Ext.Array.toArray(document.getElementsByTagName(‘div‘)); // 将把 NodeList 转换成一个数组
Ext.Array.toArray(‘splitted‘); // returns [‘s‘, ‘p‘, ‘l‘, ‘i‘, ‘t‘, ‘t‘, ‘e‘, ‘d‘]
Ext.Array.toArray(‘splitted‘, 0, 3); // returns [‘s‘, ‘p‘, ‘l‘]
Ext.toArray 是 Ext.Array.toArray 的别名
Parameters
- iterable : Object
可迭代的对象
- start : Number (optional)
从0開始的索引。表示要转换的起始位置. 默觉得 0
- end : Number (optional)
从1開始的索引,表示要转换的结束位置.
默觉得要迭代元素的末尾位置。
Returns
- Array
array
Ext.Array
toMap( Object array, Object getKey, Object scope )
使用给定数组中的元素作为key,创建一个map对象, 值是元素的索引+1。演示样例:
var map = Ext.Array.toMap([‘a‘,‘b‘,‘c‘]);
// map = { a: 1, b: 2, c: 3 };
或者指定一个key属性:
var map = Ext.Array.toMap([
{ name: ‘a‘ },
{ name: ‘b‘ },
{ name: ‘c‘ }
], ‘name‘);
// map = { a: 1, b: 2, c: 3 };
当然, 也能够指定一个key生成函数:
var map = Ext.Array.toMap([
{ name: ‘a‘ },
{ name: ‘b‘ },
{ name: ‘c‘ }
], function (obj) { return obj.name.toUpperCase(); });
// map = { A: 1, B: 2, C: 3 };
Parameters
Ext.Array
union( Array array1, Array array2, Array etc )
: Array
合并多个数组中的不反复元素到一个数组
Parameters
Returns
- Array
合并的数组
Ext.Array
返回一个去掉反复元素的新数组
Parameters
- array : Array
Returns
- Array
结果