Dojo QuickStart 快速入门教程 (5) 使用数组

Dojo 提供了一些数组处理方法,看看都有什么。

1、元素定位

dojo.indexOf(array,value)

dojo.lastIndexOf(array,value)

功能:返回 value 在 array 中的位置,如果没有找到则返回-1

下面是例子:

dojo.indexOf(["a", "b", "c","a", "b", "c"], "c")

dojo.lastIndexOf(["a", "b", "c","a", "b", "c"], "c")

 

2、枚举

dojo.forEach(array,callback)

或者

array.forEach(callback)

返回值:无

功能:用 callback 函数处理 array 中的每一个元素

例子,枚举出我的博客里最近发表的文章

Dojo QuickStart 快速入门教程 (5) 使用数组
Dojo QuickStart 快速入门教程 (5) 使用数组function test_forEach(){
Dojo QuickStart 快速入门教程 (5) 使用数组    var arr=dojo.query("li","RecentPosts");
Dojo QuickStart 快速入门教程 (5) 使用数组    dojo.forEach(arr, function(item, i){
Dojo QuickStart 快速入门教程 (5) 使用数组        var li = dojo.doc.createElement("li");
Dojo QuickStart 快速入门教程 (5) 使用数组        li.innerHTML = i+1+"_ "+item.innerHTML;
Dojo QuickStart 快速入门教程 (5) 使用数组        dojo.byId("result_forEach").appendChild(li);
Dojo QuickStart 快速入门教程 (5) 使用数组    });
Dojo QuickStart 快速入门教程 (5) 使用数组}
Dojo QuickStart 快速入门教程 (5) 使用数组

 

3、枚举并返回数组

dojo.map(array,callback)

或者

array.map(callback)

功能:用 callback 函数处理 array 中的每一个元素,并存进另外一个 array 中

返回值:返回处理后的得到的 array

例子:现有一个数组 [200, 300, 1500, 4500],将它每个元素增加10%

Dojo QuickStart 快速入门教程 (5) 使用数组
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组function test_map()Dojo QuickStart 快速入门教程 (5) 使用数组{
Dojo QuickStart 快速入门教程 (5) 使用数组    
var arr = [20030015004500];
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组    
var afterMap = dojo.map(arr, function(item)Dojo QuickStart 快速入门教程 (5) 使用数组{
Dojo QuickStart 快速入门教程 (5) 使用数组        
return item+(item/100)*10;
Dojo QuickStart 快速入门教程 (5) 使用数组
    }
);
Dojo QuickStart 快速入门教程 (5) 使用数组
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组    dojo.forEach(afterMap, 
function(item, i)Dojo QuickStart 快速入门教程 (5) 使用数组{
Dojo QuickStart 快速入门教程 (5) 使用数组        
var li = dojo.doc.createElement("li");
Dojo QuickStart 快速入门教程 (5) 使用数组        li.innerHTML 
= i+1+". New: "+item;
Dojo QuickStart 快速入门教程 (5) 使用数组        dojo.byId(
"result_map").appendChild(li);
Dojo QuickStart 快速入门教程 (5) 使用数组    }
);
Dojo QuickStart 快速入门教程 (5) 使用数组}
Dojo QuickStart 快速入门教程 (5) 使用数组

 

4、条件过滤

dojo.filter(arr,callback)

功能:用 callback 函数处理 array 中的每一个元素,将符合条件的元素存进返回数组中,并返回

返回值:数组

例子,把下面数组中 price 大于 30 的元素找出来

[ {price:10,name:"苹果"}, {price:20,name:"肉"}, {price:30,name:"油"}, {price:40,name:"汽车"}, {price:70,name:"杭州"}]

Dojo QuickStart 快速入门教程 (5) 使用数组
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组function test_filter()Dojo QuickStart 快速入门教程 (5) 使用数组{
Dojo QuickStart 快速入门教程 (5) 使用数组    
var arr = [
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组        
Dojo QuickStart 快速入门教程 (5) 使用数组{price:10,name:"苹果"},
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组        
Dojo QuickStart 快速入门教程 (5) 使用数组{price:20,name:""},
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组        
Dojo QuickStart 快速入门教程 (5) 使用数组{price:30,name:""},
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组        
Dojo QuickStart 快速入门教程 (5) 使用数组{price:40,name:"汽车"},
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组        
Dojo QuickStart 快速入门教程 (5) 使用数组{price:70,name:"杭州"},
Dojo QuickStart 快速入门教程 (5) 使用数组    ];
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组    
var filteredArr = dojo.filter(arr, function(item)Dojo QuickStart 快速入门教程 (5) 使用数组{
Dojo QuickStart 快速入门教程 (5) 使用数组        
return (item.price>30);
Dojo QuickStart 快速入门教程 (5) 使用数组    }
);
Dojo QuickStart 快速入门教程 (5) 使用数组
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组    dojo.forEach(filteredArr, 
function(item, i)Dojo QuickStart 快速入门教程 (5) 使用数组{
Dojo QuickStart 快速入门教程 (5) 使用数组        
var li = dojo.doc.createElement("li");
Dojo QuickStart 快速入门教程 (5) 使用数组        li.innerHTML 
= i+1+""+item.name;
Dojo QuickStart 快速入门教程 (5) 使用数组        dojo.byId(
"result_filter").appendChild(li);
Dojo QuickStart 快速入门教程 (5) 使用数组    }
);
Dojo QuickStart 快速入门教程 (5) 使用数组}
Dojo QuickStart 快速入门教程 (5) 使用数组

 

5、至少有一个

dojo.some(array,callback)

功能:用 callback 函数处理 array 中的每一个元素,如果存在一个以上符合条件的元素则返回 true ,否则返回 false

例子:[10203090]是否有大于50的元素

Dojo QuickStart 快速入门教程 (5) 使用数组
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组function test_some()Dojo QuickStart 快速入门教程 (5) 使用数组{
Dojo QuickStart 快速入门教程 (5) 使用数组    
var res=dojo.some(
Dojo QuickStart 快速入门教程 (5) 使用数组    [
10203090],
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组    
function(item)Dojo QuickStart 快速入门教程 (5) 使用数组{
Dojo QuickStart 快速入门教程 (5) 使用数组        
return item>50
Dojo QuickStart 快速入门教程 (5) 使用数组    }
);
Dojo QuickStart 快速入门教程 (5) 使用数组    alert(res);
Dojo QuickStart 快速入门教程 (5) 使用数组}
Dojo QuickStart 快速入门教程 (5) 使用数组


 

6、全部都

dojo.every(array,callback)

功能:用 callback 函数处理 array 中的每一个元素,所有元素都符合条件才返回 true ,否则返回 false

例子:把上面例子中的 some 改成 every ,结果就不一样了

Dojo QuickStart 快速入门教程 (5) 使用数组
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组function test_every()Dojo QuickStart 快速入门教程 (5) 使用数组{
Dojo QuickStart 快速入门教程 (5) 使用数组    
var res=dojo.every(
Dojo QuickStart 快速入门教程 (5) 使用数组    [
10203090],
Dojo QuickStart 快速入门教程 (5) 使用数组Dojo QuickStart 快速入门教程 (5) 使用数组    
function(item)Dojo QuickStart 快速入门教程 (5) 使用数组{
Dojo QuickStart 快速入门教程 (5) 使用数组        
return item>50
Dojo QuickStart 快速入门教程 (5) 使用数组    }
);
Dojo QuickStart 快速入门教程 (5) 使用数组    alert(res);
Dojo QuickStart 快速入门教程 (5) 使用数组}
Dojo QuickStart 快速入门教程 (5) 使用数组


 

版权声明:本博客文章如非特别注明,均为原创,作者保留所有权利!欢迎转载,转载请注明作者左洸和出处博客园

 

所属分类的其他文章:

1. Dojo QuickStart 快速入门教程 (4) 简单的测试框架 2. Dojo QuickStart 快速入门教程 (3) 选择器 3. Dojo QuickStart 快速入门教程 (2) 基本框架 4. Dojo QuickStart 快速入门教程 (1) Why Dojo

 
//==========================================



本文转自左洸博客园博客,原文链接:http://www.cnblogs.com/myqiao/archive/2009/05/18/1458882.html,如需转载请自行联系原作者

上一篇:C#委托基础7——匿名方法


下一篇:Java语法糖--Lambda表达式存在的意义