首页 > 代码库 > ExtJS学习-----------Ext.Array,ExtJS对javascript中的Array的扩展
ExtJS学习-----------Ext.Array,ExtJS对javascript中的Array的扩展
关于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
结果
view source
克隆一个数组,而不引用原数组,注意着不同于Ext.clone,Ext.clone不递归克隆。 它把Array.prototype.slice.call(array)方法简化 成一个方便的、容易记住的方法。
Parameters
- array : Array
数组
Returns
- Array
克隆的数组
view source
检查数组中是否包含给定元素
Parameters
- array : Array
要检查的数组
- item : Object
要查找的元素
Returns
- Boolean
数组包含元素则为true,否则为false
view source
返回 A-B的差异集合,从A中减去所有B中存在的元素
Parameters
- arrayA : Array
- arrayB : Array
Returns
- Array
A中不同于B的元素
view source
迭代一个数组或是可迭代的值,在每个元素上调用给定的回调函数
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
- item : Object
数组当前的索引中的元素
- index : Number
数组当前的索引
- allItems : Array
作为方法第一个参数的数组本身
Returns
- Boolean
返回false来停止迭代
- item : Object
- scope : Object (optional)
指定函数执行的(
this
引用)作用域 - reverse : Boolean (optional)
反转迭代的顺序(从尾到头循环) 默认为false
Returns
- Boolean
参见
fn
参数的描述.
view source
移除数组中的多个元素。这个功能相当于Array的splice方法。 但是避免了IE8的splice函数bug,不会复制移除的元素并按次序返回它们。 (因为它们通常被忽略)
Parameters
- array : Array
数组
- index : Number
要操作的索引位置
- removeCount : Number
要移除的元素数量
Returns
- Array
处理后的数组
view source
在数组的每个元素上执行指定函数,直到函数返回一个false值 如果某个元素上返回了false值,本函数立即返回false 否则函数返回true
Parameters
- array : Array
- fn : Function
每个元素上的回调函数
- scope : Object
回调函数的作用域
Returns
- Boolean
如果回调函数没有返回false值则为true
view source
Creates a new array with all of the elements of this array for which the provided filtering function returns true.
Parameters
- array : Array
- fn : Function
Callback function for each item
- scope : Object
Callback function scope
Returns
- Array
结果
view source
递归将数组和数组中的元素转换为1维数组。
Parameters
- array : Array
数组
Returns
- Array
一维数组
view source
迭代一个数组,在每个元素上调用给定的回调函数。注意如果原生的Array.prototype.forEach被支持, 这个函数将委托到Array.prototype.forEach。它不支持像each一样, 通过返回一个false来停止迭代。 因此,其性能在现代的浏览器中会比each更好。
Parameters
- array : Array
要迭代的数组
- fn : Function
回调函数
Parameters
- item : Object
数组当前的索引中的元素
- index : Number
The current 数组当前的索引
- allItems : Array
作为方法第一个参数的数组本身
- item : Object
- scope : Object (optional)
指定函数执行的(
this
引用)作用域
view source
将一个值转换为一个数组,函数返回:
- 一个空数组,如果给定的值是
undefined
或null
- 数组本身,如果已经是一个数组
- 一个数组的拷贝,如果给定的值是 iterable (arguments, NodeList 等等)
- 一个包含给定值作为唯一元素的数组 ,其他情况
Parameters
- value : Object
给定的值
- newReference : Boolean (optional)
为true则如有必要克隆给定数组然后返回一个其新引用 默认为false
Returns
- Array
数组
view source
把一个元素插入到数组,如果它不存在于这个数组
Parameters
- array : Array
数组
- item : Object
元素
view source
查找指定元素在数组中的索引位置, 补充IE中缺少的arrayPrototype.indexOf原生方法。
Parameters
- array : Array
要检查的数组
- item : Object
要查找的元素
- from : Number (optional)
搜索的起始位置
Returns
- Number
元素在数组中的索引位置(找不到时为-1)
view source
在数组中插入多个元素
Parameters
- array : Array
数组
- index : Number
插入的位置索引
- items : Array
要插入的多个元素
Returns
- Array
插入后的数组
view source
返回多个数组的公共交集
Parameters
- array1 : Array
- array2 : Array
- etc : Array
Returns
- Array
交集
view source
通过在数组的每个元素中调用一个特定函数,用结果创建一个新数组,
Parameters
- array : Array
- fn : Function
每个元素上的回调函数
- scope : Object
回调函数的作用域
Returns
- Array
结果
view source
返回数组中的最大值
Parameters
- array : Array/NodeList
数组
- comparisonFn : Function (optional)
比较函数 如果被忽略,则使用 ">" 操作符。 注意: gt = 1; eq = 0; lt = -1
Returns
- Object
maxValue 最大值
view source
计算数组中元素的平均值
Parameters
- array : Array
数组
Returns
- Number
平均值
view source
合并多个数组中的不重复元素到一个数组
union 是 merge 的别名
Parameters
- array1 : Array
- array2 : Array
- etc : Array
Returns
- Array
合并的数组
view source
返回数组中的最小值
Parameters
- array : Array/NodeList
数组
- comparisonFn : Function (optional)
比较函数 如果被忽略,则使用 "<" 操作符。 注意: gt = 1; eq = 0; lt = -1
Returns
- Object
minValue 最小值
view source
获取数组中每个元素的制定属性值. 示例:
Ext.Array.pluck(Ext.query("p"), "className"); // [el1.className, el2.className, ..., elN.className]
Parameters
- array : Array/NodeList
数组.
- propertyName : String
元素的属性名称
Returns
- Array
view source
在数组的末尾添加新的元素
参数可能是一个元素集合、也可能是多个元素集合的数组。如果参数列表中存在一个数组, 则它的所有元素都将被添加到给定数组的末尾。
Parameters
- target : Array
数组
- elements : Object...
要添加的元素。每个元素可能也是一个数组。 这种情形下,各数组的所有元素也将被添加到目标数组的末尾。
Returns
- Array
处理后的数组
view source
移除数组中的制定元素
Parameters
- array : Array
数组
- item : Object
要移除的元素
Returns
- Array
数组本身
view source
替换数组里的多个元素。这个功能相当于Array的splice方法。 但是避免了IE8的splice函数bug,而且更便于使用, 因为它插入一个元素的数组,而不是一个可变参数列表。
Parameters
- array : Array
数组
- index : Number
要操作的索引位置
- : Number
要移除的元素数量(可以为0)
- insert : Array (optional)
要插入的数组
Returns
- Array
处理后的数组
view source
返回一个数组中一部分的浅表复制。 等价于 原生方法 "Array.prototype.slice.call(array, begin, end)"。 经常被使用于数组 作为arguments,arguments对象没有提供slice方法, 但是可以作为上下文对象使用 Array.prototype.slice方法。
Parameters
- array : Array
数组 (或 arguments 对象)
- begin : Number
起始索引。为负值则 从数组的末尾计算位移
- end : Number
结束索引。 复制元素不包括结尾处的元素。 为负值则从数组的末尾计算位移,如果结尾被省略, 数组中一直到结尾的所有元素将被复制。
Returns
- Array
数组
view source
在数组的每个元素上执行指定函数,直到函数返回一个true值 如果某个元素上返回了true值,本函数立即返回true
Parameters
- array : Array
- fn : Function
每个元素上的回调函数
- scope : Object
回调函数的作用域
Returns
- Boolean
如果回调函数返回一个true值则为true
view source
排序数组中的元素 默认使用字母表,按升序排序
Parameters
- array : Array
数组
- sortFn : Function (optional)
比较函数
Returns
- Array
排序后的数组
view source
替换数组里的多个元素。这个功能相当于Array的splice方法。 但是避免了IE8的splice函数bug,除了第一个argument参数以外, 与splice方法的签名相同。 removeCount后面的所有参数都将被插入到指定位置。
Parameters
- array : Array
数组
- index : Number
要操作的索引位置
- removeCount : Number
要移除的元素数量(可以为0)
- elements : Object...
要添加到数组的多个元素.
如果没有指定任何元素,splice简化为从数组移除元素。
Returns
- Array
处理后的数组
view source
计算数组中元素的和
Parameters
- array : Array
数组
Returns
- Number
和
view source
将一个可迭代元素(具有数字下标和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
view source
使用给定数组中的元素作为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
- array : Object
- getKey : Object
- scope : Object
view source
合并多个数组中的不重复元素到一个数组
union 是 merge 的别名
Parameters
- array1 : Array
- array2 : Array
- etc : Array
Returns
- Array
合并的数组
view source
返回一个去掉重复元素的新数组
Parameters
- array : Array
Returns
- Array
结果
ExtJS学习-----------Ext.Array,ExtJS对javascript中的Array的扩展