本文导读:Ext.each方法表示迭代一个数组,数组中每个成员都将调用一次所传函数,直到函数返回false才停止执行。如果传递的数组并非一个真正的数组,所传递的函数只调用它一次。(如果不是数组,就将该“数组”放入一个[]中,而且会返回一个隐藏的int参数,代表为该array调用function的次数。)
语法:
each( Array/NodeList/Mixed array, Function fn, Object scope)
Ext.each 的用法与 JQuery.each 类似,不同之处在于Ext.each的第三个参数可以指定回调函数的执行上下文。
Extjs中对Ext.each的定义的源码:
JScript 代码
复制
![]()
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的几个实例:
JScript 代码
复制
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);
JScript 代码
复制
![]()
//JS数组
![]()
Ext.each([1,0,3,4,5,6,8],function(item){alert(item)});
![]()
![]()
//JS数组里JSON对象
Ext.each([{name:"cola",age:27},{name:"moka",age:28}],function(item){alert(item.name)});
在项目中会用到ext each。在网上看过一些总结过后自己也想谈一谈each的理解。
书上给出的例子一般如下:
例1:Ext.each([1,0,3,4,5,6,8],function(item){alert(item)});很显示对每个数据进行迭代,依次弹数数据.
例2:Ext.each([{name:"cola",age:27},{name:"moka",age:28}],function(item){alert(item.name)});
EXt3.0文档
each( Array/NodeList/Mixed array, Function fn, Object scope)
迭代一个数组,数组中每个成员都将调用一次所传函数,直到函数返回fals...
迭代一个数组,数组中每个成员都将调用一次所传函数,直到函数返回false才停止执行。如果传递的数组并非一个真正的数组,所传递的函数只调用它一次。(译注:如果不是数组,就将该“数组”放入一个[]中,而且会返回一个隐藏的int参数,代表为该array调用function的次数。)
scope:表示each的作用域,默认的应该是第一个参数的变量。
|
// 里面为function里面执行的代码。item代表的是前面的所要迭代的数组的每一个元素,如果数据用json传递过来的话也是JSONArray形式的,item代表的是每一个json对象。如例2所示
//index则是默认从0开始的item数组的索引位置。
})