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 中的每一个元素

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

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、枚举并返回数组

  dojo.map(array,callback)

  或者

  array.map(callback)

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

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

  例子:现有一个数组 [200, 300, 1500, 4500],将它每个元素增加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、条件过滤

  dojo.filter(arr,callback)

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

  返回值:数组

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

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

function test_filter(){
    var arr = [
        {price:10,name:"苹果"},
        {price:20,name:"肉"},
        {price:30,name:"油"},
        {price:40,name:"汽车"},
        {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、至少有一个

  dojo.some(array,callback)

  功能:用 callback 函数处理 array 中的每一个元素,如果存在一个以上符合条件的元素则返回 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 函数处理 array 中的每一个元素,所有元素都符合条件才返回 true ,否则返回 false

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

function test_every(){
    var res=dojo.every(
    [10, 20, 30, 90],
    function(item){
        return item>50
    });
    alert(res);
}

  

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 中的每一个元素

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

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、枚举并返回数组

  dojo.map(array,callback)

  或者

  array.map(callback)

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

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

  例子:现有一个数组 [200, 300, 1500, 4500],将它每个元素增加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、条件过滤

  dojo.filter(arr,callback)

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

  返回值:数组

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

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

function test_filter(){
    var arr = [
        {price:10,name:"苹果"},
        {price:20,name:"肉"},
        {price:30,name:"油"},
        {price:40,name:"汽车"},
        {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、至少有一个

  dojo.some(array,callback)

  功能:用 callback 函数处理 array 中的每一个元素,如果存在一个以上符合条件的元素则返回 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 函数处理 array 中的每一个元素,所有元素都符合条件才返回 true ,否则返回 false

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

function test_every(){
    var res=dojo.every(
    [10, 20, 30, 90],
    function(item){
        return item>50
    });
    alert(res);
}

  


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3