Extjs中的迭代方法

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ExtJS 是一个流行的 JavaScript 库,用于构建富交互式的 web 应用程序。它提供了丰富的组件和工具,可以帮助开发者快速构建功能强大、美观的用户界面。 以下是一个简单的 ExtJS 文示例: ```html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>ExtJS 文示例</title> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/extjs-ext-all@7.3.1/classic/theme-triton/resources/theme-triton-all.css"> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/extjs-ext-all@7.3.1/build/ext-all.js"></script> </head> <body> <script type="text/javascript"> Ext.onReady(function() { // 创建一个简单的窗口 var window = Ext.create('Ext.window.Window', { title: '欢迎使用 ExtJS', width: 400, height: 300, layout: 'fit', items: [{ xtype: 'panel', html: '<h1>你好,世界!</h1>' }] }); window.show(); }); </script> </body> </html> ``` 在这个例子,我们首先引入了 ExtJS 的样式和 JavaScript 文件。然后,使用 `Ext.onReady` 方法在页面加载完成后执行代码。 在代码,我们创建了一个简单的窗口并设置了标题、宽度和高度等属性。窗口包含一个面板,面板显示了一个带有标题的简单文本。 当页面加载完成后,我们调用 `window.show()` 方法将窗口显示在页面上。 这个示例演示了如何使用 ExtJS 创建一个简单的文窗口,并在其显示一些文本内容。通过使用 ExtJS 的丰富组件和工具,我们可以轻松地构建出功能强大、美观的 web 应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值