extjs-数组操作

1、javascript本身就提供了很多对数组的操作,extjs对其进行了封装,同样也做了一些补充,如果有兴趣的话,建议大家看些extjs的源码,里面会有很多值得我们学习的地方。
2、详细的请参考extjs4.1apiextjs4.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');

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值