1、javascript本身就提供了很多对数组的操作,extjs对其进行了封装,同样也做了一些补充,如果有兴趣的话,建议大家看些extjs的源码,里面会有很多值得我们学习的地方。
2、详细的请参考extjs4.1api 、extjs4.1中文api
Ext.onReady(function(){
//clean( Array array ) : Array
//过滤掉数组里的空值,空值的定义见 Ext.isEmpty
Logger.printf(Ext.Array.clean(['aa','','cc']))
//contains( Array array, Object item ) : Boolean
//检查数组中是否包含给定元素
Logger.printf(Ext.Array.contains(['aa','','cc'],'aa'))
//difference( Array arrayA, Array arrayB ) : Array
//返回 A-B的差异集合,从A中减去所有B中存在的元素
Logger.printf(Ext.Array.difference(['aa','bb','cc'],['bb','cc','dd']))
//each( Array/NodeList/Object iterable, Function fn, [Object scope], [Boolean reverse] ) : Boolean
//迭代一个数组或是可迭代的值,在每个元素上调用给定的回调函数
Ext.each(['aa','bb','cc'], function(name, index, countriesItSelf) {
if (name === 'bb') {
Logger.printf2(name,index+"--"+countriesItSelf);
return false; // 此处中止
}
});
//erase( Array array, Number index, Number removeCount ) : Array
//移除数组中的多个元素。这个功能相当于Array的splice方法。
var arr = ['aa','bb','cc'];
Logger.printf(Ext.Array.erase(arr,1,1))
Logger.printf(arr)
//every( Array array, Function fn, Object scope ) : Boolean
//在数组的每个元素上执行指定函数,直到函数返回一个false值 如果某个元素上返回了false值,本函数立即返回false 否则函数返回true
var arr = [1,2,5,6,9,10];
var flag = Ext.Array.every(arr, function(item){
if(item >=7){
Logger.printf(item)
return false ;
}else {
return true;
}
});
//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.
var arr = [1,2,3,4,10,18,23];
var newarr = Ext.Array.filter(arr,function(item){
if(item > 10){
return false ;
} else {
return true ;
}
});
Logger.printf(newarr)
//forEach( Array array, Function fn, [Object scope] )
//迭代一个数组,在每个元素上调用给定的回调函数。注意如果原生的Array.prototype.forEach被支持, 这个函数将委托到Array.prototype.forEach。它不支持像each一样, 通过返回一个false来停止迭代。 因此,其性能在现代的浏览器中会比each更好。
Ext.Array.forEach(['aa','bb','cc'], function(name, index, countriesItSelf) {
if (name === 'bb') {
Logger.printf2(name,index+"--"+countriesItSelf);
return false; // 此处中止
}
});
//from( Object value, [Boolean newReference] ) : Array
//将一个值转换为一个数组,函数返回:
var obj = {name : 'tom', age : 12};
var arr = Ext.Array.from(obj)
Logger.printf(arr[0].name);
//indexOf( Array array, Object item, [Number from] ) : Number
//查找指定元素在数组中的索引位置, 补充IE中缺少的arrayPrototype.indexOf原生方法。 ...
Logger.printf(Ext.Array.indexOf(['aa','','cc'],''));
//insert( Array array, Number index, Array items ) : Array
//在数组中插入多个元素
Logger.printf(Ext.Array.insert(['aa','','cc'],1,'dd'));
//intersect( Array array1, Array array2, Array etc ) : Array
//返回多个数组的公共交集
Logger.printf(Ext.Array.intersect(['aa','','cc'],['aa','bb'],['aa','ff'],['aa','ee']));
//mean( Array array ) : Number
//计算数组中元素的平均值 ...
Logger.printf(Ext.Array.mean([1,2,3,4,5])); //返回平均值
//merge( Array array1, Array array2, Array etc ) : Array
//合并多个数组中的不重复元素到一个数组 union 是 merge 的别名 ...
Logger.printf(Ext.Array.merge(['aa','','cc'],['aa','bb'],['aa','ff'],['aa','ee']));
//pluck( Array/NodeList array, String propertyName ) : Array
//获取数组中每个元素的制定属性值.
var obj = {name : 'tom', age : 12};
var obj2 = {name : 'jerry', age : 12};
var arr = [];
arr.push(obj);
arr.push(obj2);
Logger.printf(Ext.Array.pluck(arr,'name'));
//push( Array target, Object... elements ) : Array
//在数组的末尾添加新的元素
Logger.printf(Ext.Array.push([],obj,obj2));
//remove( Array array, Object item ) : Array
//移除数组中的制定元素
Logger.printf(Ext.Array.remove([1,2,3,4,5],2));
//replace( Array array, Number index, Number , [Array insert] ) : Array
//替换数组里的多个元素。这个功能相当于Array的splice方法。
Logger.printf(Ext.Array.replace([1,2,3,4,5],2,1,[7,8,9]));
//slice( Array array, Number begin, Number end ) : Array
//返回一个数组中一部分的浅表复制
Logger.printf(Ext.Array.slice([1,2,3,4,5],2,4));
//some( Array array, Function fn, Object scope ) : Boolean
//在数组的每个元素上执行指定函数,直到函数返回一个true值 如果某个元素上返回了true值,本函数立即返回true
var flag = Ext.Array.some([1,2,3,4,5],function(item){
if(item>3){
Logger.printf(item);
return true;
}
})
//sum( Array array ) : Number
//计算数组中元素的和
Logger.printf(Ext.Array.sum([1,2,3,4,5]));
//splice( Array array, Number index, Number removeCount, Object... elements ) : Array
//替换数组里的多个元素。这个功能相当于Array的splice方法。
var arr = [1,2,3,4,5];
Logger.printf(Ext.Array.splice(arr,2,1,7,8,9));
Logger.printf(arr);
//union( Array array1, Array array2, Array etc ) : Array
//合并多个数组中的不重复元素到一个数组 union 是 merge 的别名
Logger.printf(Ext.Array.union(['aa','','cc'],['aa','bb'],['aa','ff'],['aa','ee']));
//unique( Array array ) : Array
//返回一个去掉重复元素的新数组
Logger.printf(Ext.Array.unique([1,2,4,,4,4,3,4,5]));
})
//记录器
Ext.define('Logger', {
singleton: true,
log: function(msg) {
console.log(msg);
},
printf : function(msg){
this.log(Ext.id('','num:')+' '+msg);
},
printf2 : function(val,msg){
this.printf(val+'--'+msg);
}
});
Logger.log('Hello');