• 扯一扯js for in ForEach 第一次写文章有点小激动呢


    for in 

    for (变量 in 对象)
    {
        在此执行代码
    }

    语句用于对数组或者对象的属性进行循环操作。

    for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。 

    由于数组也是对象所以可以理解为对对象操作。

    var person={fname:"John",lname:"Doe",age:25}; 
    for (x in person)
    {
        txt=txt + person[x];
    }

    注意如果有原型属性,原型属性也会被访问

    Object.prototype.bar = 10;// 修改Object.prototype
    var obj={"name":"wjy","age":26,"sex":"female"};//定义一个object对象
    var keys=[];//定义一个数组用来接受key
    var values=[];//定义一个数组用来接受value
    for(var key in obj){
      keys.push(key);
      values.push(obj[key]);//取得value
    }
    alert("keys is :"+keys+" and values is :"+values);

    !!如果不想被访问原型

    if (obj.hasOwnProperty(key) === true){
      keys.push(key);
      values.push(obj[key]);
    }

    forEach()

    述: 方法让数组的每一项都执行一次给定的函数。

    语法array.forEach(callback[currentValue,index,array,thisArg]);

     callback:回调函数,常规意义就是当函数本身执行完毕,再去执行参数上的回调函数。就是function(currentValue,index,thisArg){}

    参数

    1.   currentValue        当前项,遍历中数组中正在被处理的数组项。作用:方便函数内使用搞事情。
    2.   index                    当前项目的下标呗。      作用:同上。
    3.   array                    重新给数组一个代号方便内部使用吧。
    4.    thisArg                  修改内部值的指向。

    描述

      forEach 方法按升序为数组中含有效值的每一项执行一次callback 函数,那些已删除(使用delete方法等情况)或者从未赋值的项将被跳过。

    特点

      简单说不出错,无法中断,切保持开始状态。

      forEach 遍历的范围在第一次调用 callback 前就会确定。调用forEach 后添加到数组中的项不会被 callback 访问到。如果已经存在的值被改变,则传递给 callback 的值是 forEach 遍历到他们那一刻的值。已删除的项不会被遍历到。

    示例

      1.遍历数组中的数,模拟一个数组。  

      foreach形式

       function logArrayElements(element, index, array) {

           console.log("a[" + index + "] = " + element);
        }
        [2, 5, 9].forEach(logArrayElements);
     正常for形式
        var arr = [2,5,9];
        for(var i=0; i<arr.length;i++){
          console.log('arr['+i+']='+arr[i]);
        }

    实例2

      var arr=[{a:1},{}];

      arr.forEach(function(item,idx){
        item.b=idx;
      });
     结果:B.[{a:1,b:0},{b:1}] 
  • 相关阅读:
    angular打包出现JavaScript堆内存不足
    antDesign 【NG-ZORRO、Angular】日期选择框时间段nz-range-picker设置默认选择日期及限制日期可选范围
    Echarts 折线图Demo调色12种,可以直接使用~~~
    公司版git完整版
    Linux实例重启服务器后root用户远程连接失败
    Flask+Redis+mq实现高并发
    Dockerfile
    Docker应用部署
    RabbitMQ 实现实现基本通信及订单处理
    centos 7 安装docker的文档参考
  • 原文地址:https://www.cnblogs.com/LiSuSpAu/p/5687838.html
Copyright © 2020-2023  润新知