最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 迭代器

    正文概述 掘金(小汤0)   2021-01-24   546
    • 迭代函数: 通过对数组中的元素逐个应用, 来操作返回相应的值.
    • 不返回新数组
      • arr.forEach(callback): 按升序, 为数组中每一项执行一次函数 callback .
      • arr.every(callback): 测试一个数组内的所有元素是否都能通过某个指定函数的测试. 它返回一个布尔值.
        • true . 每一项执行结果均为 truearr 为空.
        • false . 存在元素, 执行结果为 false .
      • arr.some(callback): 测试数组中是不是至少有 1 个元素通过了被提供的函数测试. 它返回一个布尔值.
        • true . 存在一项执行为 true , 返回 true .
        • false . 每一项执行均为 falsearr 为空.
      • arr.reduce(callback): 对数组中的每个元素执行函数 callback ( 升序执行 ) 将其结果汇总为单个返回值.
    /**
     * arr.forEach(callback): 按升序, 为数组中每一项执行一次函数 callback
     */
    var array = [ 'a', 'b', 'c' ];
    array.forEach(element => console.log(element));
    /**
     * std
          a
          b
          c
     */
    
    function square(num) {
        console.log(num, num * num);
    }
    var num = [ 1, 2, 3 ];
    num.forEach(square);
    console.log(num);
    /**
     * std
         1 1
         2 4
         3 9
     */
    
    /**
     * arr.every(callback): 测试一个数组内的所有元素是否都能通过某个指定函数的测试. 它返回一个布尔值.
     *   注: 若收到空数组, 此方法在任何情况下都会返回 true .
     */
    function isEven(num){
      return num % 2 === 0;
    }
    var num = [ 2, 4, 6, 8, 10 ];
    var even = num.every(isEven);
    if(even){
      console.log("所有的数字都是偶数");
    }else{
      console.log("不是所有的数字都是偶数");
    }
    /**
     * std
         所有的数字都是偶数
     */
    
    /**
     * arr.some(callback): 测试数组中是不是至少有 1 个元素通过了被提供的函数测试. 它返回一个布尔值.
     *   注: 若收到空数组, 此方法在任何情况下都会返回 false .
     */
    function isEven(num){
      return num % 2 === 0;
    }
    var num = [ 1, 2, 3, 4, 5, 6, 7, 8 ];
    var someEven = num.some(isEven);
    if(someEven){
      console.log("有些数字是偶数");
    }else{
      console.log("没有数字是偶数");
    }
    /**
     * std
         有些数字是偶数
     */
    
    /**
     * reduce(): 对数组中的每个元素执行函数 callback ( 升序执行 ) 将其结果汇总为单个返回值.
     */
    function add(num1, num2){
      return num1 + num2;
    }
    var num = [ 1, 2, 3, 4 ];
    var sum = num.reduce(add);
    console.log(sum);
    
    function concat(str, i) {
      return str + i;
    }
    var words = [ "I am ", "a ", "coder " ];
    var re = words.reduce(concat);
    console.log(re);
    /**
     * std
         10
         I am a coder 
     */
    
    • 返回新数组的
      • arr.map(callback): 创建一个新数组, 其结果是该数组中的每个元素调用一次提供的函数 后的返回值.
      • arr.filter(calllback): 创建一个新数组, 其包含通过函数测试的所有元素.
    /**
     * arr.map(callback): 创建一个新数组, 其结果是该数组中的每个元素调用一次提供的函数后的返回值.
     */
    function addFive(grade){
      return grade += 5;
    }
    var grade = [ 77, 82, 88, 95, 90 ];
    var result = grade.map(addFive);
    console.log(result);
    /**
     * std
         [ 82, 87, 93, 100, 95 ]
     */
    
    var array = [1, 4, 9];
    var map = array.map(x => x * 2);
    console.log(map);
    /**
     * std
         [ 2, 8, 18 ]
     */
    
    /**
     * arr.filter(callback): 创建一个新数组, 其包含通过函数测试的所有元素.
     */
    var words = [ "spray", "limit", "elite", "exuberant", "destruction", "present" ];
    var result = words.filter(word => word.length > 6);
    console.log(result);
    /**
     * std
         [ 'exuberant', 'destruction', 'present' ]
     */
    
    function passing(num){
        return num >= 60;
    }
    var grades = [];
    for(var i = 0;i <= 10;i ++){
        grades[i] = Math.floor(Math.random() * 101);
    }
    var pass = grades.filter(passing);
    console.log('随机产生的 10 个同学的分数为: ' + grades);
    console.log('及格的分数有: ' + pass);
    /**
     * std
         随机产生的 10 个同学的分数为: 30, 25, 77, 12, 74, 34, 41, 61, 57, 49, 92
         及格的分数有: 77, 74, 61, 92
     */
    
    思路, 程序参考
    • wangzheng0822: Array

    • MDN

    • 注: 程序输出由 WebStorm 编译


    起源地下载网 » 迭代器

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元