迭代器方法

不生成新数组的迭代器方法

这些方法不产生任何新数组,相反,他们要么对于数组中的每个元素执行某种操作,要么返回一个值。

forEach()方法

该方法接受一个函数作为参数,对数组中的每个元素使用该函数。

    function square(num) {
        console.log(num, num*num);
    }
    
    var nums = [1,2,3,4,5,6,7];
    nums.forEach(square);

该程序的输出为:
1 1
2 4
3 9
4 16
5 25
6 36
7 49

every()方法

该方法接受一个返回值为布尔类型的函数,对数组中的每个元素使用该函数。如果对于所有的元素,该函数均返回true,则该方法返回true。

 function isEven(num) {
        return num % 2 == 0;
    }
    var nums = [2,4,6,8,10];
    var even = nums.every(isEven);
    if (even){
        console.log("all numbers are even");
    }else{
        console.log("not all numbers are even");
    }

输出为:
all numbers are even
将数组改为[2,4,6,7,8,10]
输出为:
not all numbers are even

some()方法

该方法也接受一个返回值为布尔类型的函数,只要有一个元素使得该函数返回true,该方法就返回true。

function isEven(num) {
        return num%2 == 0;
    }

    var nums = [1,2,3,4,5,6,7,8,9,10];
    var someEven = nums.some(isEven);
    if (someEven){
        console.log("some numbers are even");
    }else{
        console.log("no numbers are even");
    }

    nums = [1,3,5,7,9];
    someEven = nums.some(isEven);
    if (someEven){
        console.log("some numbers are even");
    }else{
        console.log("no numbers are even");
    }

输出结果为:
some numbers are even
no numbers are even

reduce()方法

reduce()方法接受一个函数,返回一个值。该方法会从一个累加值开始,不断对累加值和数组中的后续元素调用该函数,直到数组中的最后一个元素,最后返回得到的累加值。

 function add(runningTotal, currentValue) {
        return runningTotal + currentValue;
    }

    var nums = [1,2,3,4,5,6,7,8,9,10];
    var sum = nums.reduce(add);
    console.log(sum);//55

执行过程如下:
add(1,2) -> 3
add(3,3) -> 6
add(6,4) -> 10
add(10,5) -> 15
add(15,6) -> 21
add(21,7) -> 28
add(28,8) -> 36
add(36,9) -> 45
add(45,10) -> 55
输出结果为:
55

生成新数组的迭代器方法

map()方法

map()和forEach()有点像,对数组中的每个元素使用某个函数。两者的区别是map()返回一个新的数组,该数组的元素是对原有元素应用某个函数得到的结果。

function curve(grade) {
       return grade += 5;
   }

   var grades = [45, 55, 65, 75, 85];
   var newgrades = grades.map(curve);
   console.log(newgrades);//50, 60, 70, 80, 90

输出结果为:
50, 60, 70, 80, 90

	//取出每个字符串的第一个字母
   function first(word) {
        return word[0];
    }

    var words = ["for", "your", "information"];
    var acronym = words.map(first);
    console.log(acronym.join(""));//fyi

输出结果为:
fyi

filter()方法

filter()和every()类似,传入一个返回值为布尔类型的函数。和every()方法不同的是,当对数组中的所有元素应用该函数,结果均为true时,该方法并不返回true,而是返回一个新数组,该数组包含应用该函数后结果均为true的元素。

    function isEven(num) {
        return num % 2 == 0;
    }

    function idOdd(num) {
        return num % 2 != 0;
    }

    var nums = [];
    for (var i = 0; i < 20; i++) {
        nums[i] = i + 1;
    }

    var evens = nums.filter(isEven);
    console.log(evens);//2, 4, 6, 8, 10, 12, 14, 16, 18, 20
    var odds = nums.filter(idOdd);
    console.log(odds);//1, 3, 5, 7, 9, 11, 13, 15, 17, 19

输出结果为:
2, 4, 6, 8, 10, 12, 14, 16, 18, 20
1, 3, 5, 7, 9, 11, 13, 15, 17, 19

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值