Dojo 提供了一些數(shù)組處理方法,看看都有什么。
1、元素定位
dojo.indexOf(array,value)
dojo.lastIndexOf(array,value)
功能:返回 value 在 array 中的位置,如果沒(méi)有找到則返回-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)
返回值:無(wú)
功能:用 callback 函數(shù)處理 array 中的每一個(gè)元素
例子,枚舉出我的博客里最近發(fā)表的文章
function test_forEach(){
var arr=dojo.query("li","RecentPosts");
dojo.forEach(arr, function(item, i){
var li = dojo.doc.createElement("li");
li.innerHTML = i+1+"_ "+item.innerHTML;
dojo.byId("result_forEach").appendChild(li);
});
}
3、枚舉并返回?cái)?shù)組
dojo.map(array,callback)
或者
array.map(callback)
功能:用 callback 函數(shù)處理 array 中的每一個(gè)元素,并存進(jìn)另外一個(gè) array 中
返回值:返回處理后的得到的 array
例子:現(xiàn)有一個(gè)數(shù)組 [200, 300, 1500, 4500],將它每個(gè)元素增加10%

function test_map()
{
var arr = [200, 300, 1500, 4500];

var afterMap = dojo.map(arr, function(item)
{
return item+(item/100)*10;
});


dojo.forEach(afterMap, function(item, i)
{
var li = dojo.doc.createElement("li");
li.innerHTML = i+1+". New: "+item;
dojo.byId("result_map").appendChild(li);
});
}
4、條件過(guò)濾
dojo.filter(arr,callback)
功能:用 callback 函數(shù)處理 array 中的每一個(gè)元素,將符合條件的元素存進(jìn)返回?cái)?shù)組中,并返回
返回值:數(shù)組
例子,把下面數(shù)組中 price 大于 30 的元素找出來(lái)
[ {price:10,name:"蘋(píng)果"}, {price:20,name:"肉"}, {price:30,name:"油"}, {price:40,name:"汽車(chē)"}, {price:70,name:"杭州"}]

function test_filter()
{
var arr = [

{price:10,name:"蘋(píng)果"},

{price:20,name:"肉"},

{price:30,name:"油"},

{price:40,name:"汽車(chē)"},

{price:70,name:"杭州"},
];

var filteredArr = dojo.filter(arr, function(item)
{
return (item.price>30);
});


dojo.forEach(filteredArr, function(item, i)
{
var li = dojo.doc.createElement("li");
li.innerHTML = i+1+". "+item.name;
dojo.byId("result_filter").appendChild(li);
});
}
5、至少有一個(gè)
dojo.some(array,callback)
功能:用 callback 函數(shù)處理 array 中的每一個(gè)元素,如果存在一個(gè)以上符合條件的元素則返回 true ,否則返回 false
例子:[10, 20, 30, 90]是否有大于50的元素

function test_some()
{
var res=dojo.some(
[10, 20, 30, 90],

function(item)
{
return item>50
});
alert(res);
}
6、全部都
dojo.every(array,callback)
功能:用 callback 函數(shù)處理 array 中的每一個(gè)元素,所有元素都符合條件才返回 true ,否則返回 false
例子:把上面例子中的 some 改成 every ,結(jié)果就不一樣了

function test_every()
{
var res=dojo.every(
[10, 20, 30, 90],

function(item)
{
return item>50
});
alert(res);
}
版權(quán)聲明:本博客文章如非特別注明,均為原創(chuàng),作者保留所有權(quán)利!歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者左洸和出處BlogJava
所屬分類(lèi)的其他文章:
1. Dojo QuickStart 快速入門(mén)教程 (4) 簡(jiǎn)單的測(cè)試框架
2. Dojo QuickStart 快速入門(mén)教程 (3) 選擇器
3. Dojo QuickStart 快速入門(mén)教程 (2) 基本框架
4. Dojo QuickStart 快速入門(mén)教程 (1) Why Dojo
//==========================================
posted on 2009-05-18 10:08
左洸 閱讀(1516)
評(píng)論(2) 編輯 收藏