原文地址:http://www.veryhuo.com/a/view/36701.html

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。
另一个有用的技巧是你可以更方便的重用相同的方法:

var myFunction = function (item, index)
{
//does some clever thing
} Ext.each(people, myFunction);
Ext.each(['another', 'array'], myFunction);

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系列版本后将被移除。

数学方法

var numbers = [1, 2, 3, 4, 5];
Ext.min(numbers); //1
Ext.max(numbers); //5
Ext.sum(numbers); //15
Ext.mean(numbers); //3

原文地址:Ext JS iterator functions

[转]Extjs中的迭代方法的更多相关文章

  1. JavaScript中数组迭代方法(jquery)

    var arr = [1,2,4,5,6]; //1.forEach(让数组中的每一项做一件事)arr.forEach(function(item,index){    console.log(ite ...

  2. JavaScript中数组迭代方法

    文章来源 : https://www.cnblogs.com/shuiyi/p/5058524.html

  3. javascript中五种迭代方法实例

    温习一下js中的迭代方法. <script type="text/javascript"> var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]; ...

  4. ExtJs中XTemplate使用(转)

    转自http://www.studyofnet.com/news/408.html 本文导读:XTemplate是Ext.Template扩展的新类,它支持高级功能的模板类,如自动数组输出.条件判断. ...

  5. JavaScript 之迭代方法

    前言:关于 JS 中为数组定义的迭代方法,我最开始是在<JavaScript高级程序设计>中学习的,然后...我并没有看懂,后来翻阅各个大佬的博客,稍微理解了那么一丢丢.以下就是我的一点见 ...

  6. Extjs中给同一个GridPanel中的事件添加参数的方法

    Extjs中给同一个GridPanel中的事件添加参数的方法: this.isUse = new Ext.Action({            text:'启用',            scope ...

  7. javaScript中的数组迭代方法

    ECMAScript5为数组定义了5个迭代方法. 每个方法都接收两个参数:要在每一项上运行的函数  和  (可选的)运行该函数的作用域对象. 传入这些方法中的函数会接收三个参数:数组项的值,该项在数组 ...

  8. Javascript中的迭代、归并方法

    迭代方法 在Javascript中迭代方法个人觉得尤为重要,在很多时候都会有实际上的需求,javascript提供了5个迭代方法来供我们操作,它们分别为: every() 对数组中的每一个项运用给定的 ...

  9. JS中数组的迭代方法和归并方法

    昨天总结的JavaScript中的数组Array方法 数组的迭代方法 ES5中为数组定义了5个迭代方法.每个方法都要接收两个参数:要在每一项上面运行的函数和(可选的)运行该函数的作用域对象---影响t ...

随机推荐

  1. C语言下的错误处理的问题

    下面是三种C语言的错误处理,你喜欢哪一种?还是都不喜欢? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /* 问题: 不充分,而且很容易出错,前 ...

  2. 实现超级简单的bug管理系统

    大家可以试着去实现一个超级简单的bug管理系统 不需要鉴权,也就是不需要登陆 有tag管理功能,缺陷上可以加tag,通过tag区分bug的状态和类型 bug的增删改查功能 bug描述支持markdow ...

  3. linux 文件系统 xfs、ext4、ext3 的区别

    前言 centos7.0开始默认文件系统是xfs,centos6是ext4,centos5是ext3 ext3介绍 ext3和ext4的最大区别在于,ext3在fsck时需要耗费大量时间(文件越多,时 ...

  4. App开发准备

    一. Android开发 二. IOS开发 1. 准备苹果电脑 Mac pro 一般比较贵,很少人或公司使用 替代的产品为 iMac 或 Mac mini 中配8G内存版 2. 准备苹果开发者账户,才 ...

  5. [转]python中@classmethod @staticmethod区别

    Python中3种方式定义类方法, 常规方式, @classmethod修饰方式, @staticmethod修饰方式. class A(object): def foo(self, x): prin ...

  6. 活久见: 原来 Chrome 浏览器支持 Import from 语法

    需要满足以下三个条件: 1.高版本的Chrome ,总而言之越新越好……,其他浏览器请参考:https://caniuse.com/#search=import 2.必须在服务器环境下才能运行,譬如a ...

  7. 使用 properties 配置文件装配 bean 的方式

    在spring中将bean 注册到spring 容器中常见的有三种方式(两类): 先说明配置文件内容:application.yml,有一段配置如下 persons: youtube: name: y ...

  8. 【转载】Spring @Async 源码解读。

    由于工作中经常需要使用到异步操作,一直在使用@Async, 今天抽空学习了一下它的执行原理,刚好看到一篇写的很棒的文章,这里转载过来做个记录,感谢原作者的无私奉献. 原文章链接地址:https://w ...

  9. Mysql 导入CSV数据 语句 导入时出现乱码的解决方案

    1. 登陆mysql 2. use testdb 3. 执行导入语句 LOAD DATA LOCAL INFILE 'd://exportedtest2.csv' INTO TABLE usertab ...

  10. php分享三十二:php调试工具

    一:phpdbg http://phpdbg.com/