对数据的访问的操作是很重要的,javascript也提供了一些数组方法来处理数组类型的数据,但是并不是所有浏览器都支持这些方法。dojo提供了一些关于数组的方法,并且在浏览器兼容性、提高执行效率、运行环境的支持方面都比较好。
filter(arr, callback, thisObject)
every(arr, callback, thisObject)
确定数组中的每个元素是否都满足回调函数的条件,如果都满足返回true,只要有一个不满足就返回false。
参数:
- arr:数组|字符串(如果一个字符串,操作单个字符。)
- callback:函数|字符串(调用一个函数,三个参数:项目,索引和数组,如果条件满足,则返回。)
- thisObject:对象类型,可选。可用于范围调用回调函数。
require(["dojo/_base/array"],function(array){
var arr= [1,2,3,4];
array.every(arr,function(item){
return item>1;
});//return false;
});
如果要使用循环进行比较判断,使用every()的效率要比forEach()高。
some(arr, callback, thisObject)
确定数组中的任何一个元素是否满足回调函数的条件,如果有一项满足返回true,没有一项满足就返回false。
参数:
- array:数组|字符串(如果一个字符串,操作单个字符。)
- callback:函数|字符串(调用一个函数,三个参数:项目,索引和数组,如果条件满足,则返回。)
- thisObject:对象类型,可选。可用于范围调用回调函数。
require(["dojo/_base/array"],function(array){
var arr= [1,2,3,4];
array.some(arr,function(item){
return item>1;
});//return true;
});
indexOf(arr, value, fromIndex, findLast)
查找一个元素在数组中的第一个位置。如果存在则返回元素所在数组中的索引。如果未找到该值,则返回- 1。
参数:
- arr:数组
- value:对象类型参数
- formIndex:整数参数,可选。可设置开始搜索的index
- findLast:布尔类型,可选。如果设置为true,类似于使用lastIndexOf方法。
require(["dojo/_base/array"],function(array){
var arr= ['apple','orange','banana','orange'];
array.indexOf(arr,'orange');//1
array.indexOf(arr,'orange',-1,true);//3
array.indexOf(arr,"pear");//-1
});
lastIndexOf(arr, value, fromIndex)
查找传递数组中所提供值的最后一个索引。如果未找到该值,则返回- 1。
参数:
- array:数组
- value:对象类型参数
- formIndex:整数参数,可选。可设置开始搜索的index
require(["dojo/_base/array"],function(array){
var arr= ['apple','orange','banana','orange'];
array.lastIndexOf(arr,'orange');//3
});
*indexOf方法从前至后挨个的搜索数组中的元素,lastIndexOf则从后向前逐个搜索。要注意这两个方法在搜索时都使用严格的比较操作(===),所以你除了可以查找简单数据类型, 你还可以查找对象。
forEach(arr, callback, thisObject)
对arr中的每个元素都执行callback函数(对元素进行操作)
参数:
- arr:数组
- callback:回调函数
- thisObject:设置回调函数中的作用域,可选。
require(["dojo/_base/array"],function(array){
var arr= ['apple','orange','banana'];
array.forEach(arr,function(item,index){
console.info("item:"+item+";index:"+index)
});
});
map(arr, callback, thisObject)
对arr中的每个元素都执行callback函数(对元素进行操作),将处理结果组成一个数组返回。
参数:
- arr:数组
- callback:回调函数
- thisObject:设置回调函数中的作用域,可选。
require(["dojo/_base/array"],function(array){
var arr= [1,2,3,4];
var newArr=array.map(arr, function(item){
return item+1;
});//newArr=[2,3,4,5]
});
filter(arr, callback, thisObject)
返回一个新的数组,数组中的元素是arr中满足回调函数callback条件的元素。
参数:
- arr:数组
- callback:回调函数
- thisObject:设置回调函数中的作用域,可选。
require(["dojo/_base/array"],function(array){
var arr= [1,2,3,4];
var newArr= array.filter([1, 2, 3, 4], function(item){
return item>1;
});//newArr=[2,3,4];
});