EXTJS 有很多的迭代方法,例如,你也许已知道的Ext.each,但还有另外一些不为人知且很有用的方法。
首先,简要回顾下Ext.each:
Ext.each
为每一个数组的成员应用同一个方法,它基本上是一个更方便的循环形式
var people = ['Bill', 'Saul', 'Gaius'];
//using each to detect Cylons:
Ext.each(people, function (person, index)
{
var cylon = (index + 1) % 2 == 0; //every second man is a toaster
alert(person + (cylon ? ' is ' : ' is not ') + 'a fraking cylon');
});
//is the same as
for (var i = 0; i < people.length; i++)
{
var person = people[i];
var cylon = (index + 1) % 2 == 0; //every second man is a toaster
alert(person + (cylon ? ' is ' : ' is not ') + 'a frakin cylon');
};
Ext.iterate
Ext.iterate 与 Ext.each 类似针对非数组对象. 通常用在for-in 循环中:
var ships = { 'Bill': 'Galactica', 'Laura': 'Colonial One' };
Ext.iterate(ships, function (key, value)
{
alert(key + "'s ship is the " + value);
});
//is the same as
for (key in ships)
{
var value = ships[key];
alert(key + "'s ship is the " + value);
}
用Ext.iterate在数组上,与Ext.each完全相同。
each和iterate方法都有第三个可选参数scope。
Ext.pluck
(4.0.0之后过时) Ext.pluck从对象数组捕获特定的属性
var animals = [
{ name: 'Ed', species: 'Unknown' },
{ name: 'Bumble', species: 'Cat' },
{ name: 'Triumph', species: 'Insult Dog' }
];
Ext.pluck(animals, 'species'); //returns ['Unknown', 'Cat', 'Insult Dog']
Ext.pluck(animals, 'name'); //returns ['Ed', 'Bumble', 'Triumph']
此方法自4.0.0不建议使用,请用Ext.Array.pluck代替.
Ext.invoke
(4.0.0之后过时)数组中所有成员调用同一个方法,并返回结果,使用用上例animals:
var describeAnimal = function (animal)
{
return String.format("{0} is a {1}", animal.name, animal.species);
}
var describedAnimals = Ext.invoke(animals, describeAnimal);
console.log(describedAnimals); // ['Ed is a Unknown', 'Bumble is a Cat', 'Triumph is a Insult Dog'];
Ext.invoke与Ruby的集合方法类似,使得更容易转换数组,任何增加的参数都可通过Ext.invoke传递。
此方法自4.0.0不建议使用,4.X系列版本后将被移除。
Ext.Partition
Ext.Partition将数组拆分成两部分。
var trees = [
{ name: 'Oak', height: 20 },
{ name: 'Willow', height: 10 },
{ name: 'Cactus', height: 5 }
];
var isTall = function (tree) { return tree.height > 15 };
Ext.partition(trees, isTall);
//returns:
[
[{ name: 'Oak', height: 20}],
[{ name: 'Willow', height: 10 }, { name: 'Cactus', height: 5}]
]
此方法自4.0.0不建议使用,4.X系列版本后将被移除。
分享到:
相关推荐
基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统,界面美观,适合快速迭代开发 项目说明 技术栈: SpringBoot MyBatis Redis MySQL FreeMarker ExtJs 基于SpringBoot+FreeMarker+MyBatis+...
1、基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统源码(适合快速迭代开发).zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计...
本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何...
6.10.6 迭代集合中的对象调用指定的方法 6.10.7 获取集合中的对象 6.10.8 该类中的其他一些有用的方法 6.10.9 该类中重要的事件(Events) 6.11 Ext.util.TaskRunner 6.11.1 构造函数 6.11.2 启动一个线程...
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。...基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统源码(适合快速迭代开发).zip
eslint-plugin-extjs 使用ExtJS框架的项目的... 它不支持像在每个回调函数中一样通过在回调函数中返回false来停止迭代。 但是,与每种浏览器相比,现代浏览器的性能可能要好得多。 以下模式被视为警告: Ext.Arra
迭代一个对象,在每个迭代上调用给定的回调函数 在回调函数中返回 false 可以停止迭代. ... Ext.Object view sourcefromQueryString( String queryString, [Boolean recursive] ) : Object 将查询字符串转换回对象...
基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统,界面美观,适合快速迭代开发
Extjs树编辑器示例预览可以通过rawgit在找到。 库版本: Extjs-3.4.11 RequireJS-2.1.20
软件运行利用集成芯片将相关电网数据抽取出来,传输到数据融合处理器中,基于聚类分析算法从电网信息中发现异常信息,得到的检测结果通过可视化设备显示出来,实现电网信息化运维。实验结果表明,与传统系统相比,所...