博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
扯一扯js for in ForEach 第一次写文章有点小激动呢
阅读量:7223 次
发布时间:2019-06-29

本文共 1631 字,大约阅读时间需要 5 分钟。

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}] 

 

转载于:https://www.cnblogs.com/LiSuSpAu/p/5687838.html

你可能感兴趣的文章
精通Oracle 10g Pl/SQL编程
查看>>
邱怡轩:R中大规模矩阵的SVD与矩阵补全
查看>>
C++ Primer习题集(第5版)
查看>>
centos7 mysql 5.7 yum安装
查看>>
JSOUP简单应用
查看>>
Mysql,SqlServer,Oracle主键自动增长的设置
查看>>
开源 java CMS - FreeCMS2.3会员登录
查看>>
malloc(0)的返回值
查看>>
析构方法、克隆对象
查看>>
Python字符编码详解
查看>>
Android开发 Firebase动态链接打开APP
查看>>
基于 HTML5 Canvas 的 3D 模型贴图问题
查看>>
让技术不要成为“背锅侠”!
查看>>
dubbo源码分析系列——dubbo的SPI机制源码分析
查看>>
表格单元格td设置宽度无效的解决办法
查看>>
防止视频资源被下载
查看>>
都是并发惹的祸
查看>>
eclipse实现JavaWeb项目 增量打包
查看>>
面试题系列一之 程序生命周期
查看>>
设计模式——观察者模式:气象监测应用
查看>>