语法:
each( Array/NodeList/Mixed array, Function fn, Object scope)
Ext.each 的用法与 JQuery.each 类似,不同之处在于Ext.each的第三个参数可以指定回调函数的执行上下文。
each( Array/NodeList/Mixed array, Function fn, Object scope)
迭代一个数组,数组中每个成员都将调用一次所传函数,直到函数返回fals...
迭代一个数组,数组中每个成员都将调用一次所传函数,直到函数返回false才停止执行。如果传递的数组并非一个真正的数组,所传递的函数只调用它一次。(译注:如果不是数组,就将该“数组”放入一个[]中,而且会返回一个隐藏的int参数,代表为该array调用function的次数。)
scope:表示each的作用域,默认的应该是第一个参数的变量。
each( Array/NodeList/Mixed array, Function fn(item,index){
// 里面为function里面执行的代码。item代表的是前面的所要迭代的数组的每一个元素,如果数据用json传递过来的话也是JSONArray形式的,item代表的是每一个json对象。如例2所示
//index则是默认从0开始的item数组的索引位置。
})
Extjs中对Ext.each的定义的源码:
each : function(array, fn, scope){ if(Ext.isEmpty(array, true)){ return; } if(!Ext.isIterable(array) || Ext.isPrimitive(array)){ array = [array]; } for(var i = 0, len = array.length; i < len; i++){ if(fn.call(scope || array[i], array[i], i, array) === false){//3等号 return i; }; } }
关于 Ext.each的几个实例:
var people = ['Bill', 'Saul', 'Gaius']; //using each to detect Cylons: var f=function (person, index) { var cylon = (index + 1) % 2 == 0; //every second man is a toaster alert(person + (cylon ? ' is ' : ' is not ') + 'a fraking cylon'); } Ext.each(people,f);
//JS数组 Ext.each([1,0,3,4,5,6,8],function(item){alert(item)}); 会依次弹出1,0,3,4,5,6,8 //JS数组里JSON对象 Ext.each([{name:"cola",age:27},{name:"moka",age:28}],function(item){alert(item.name)});