首页 > 其他分享 >js之实现for-in/of循环对象

js之实现for-in/of循环对象

时间:2023-08-09 15:11:06浏览次数:42  
标签:... 遍历 mdn 迭代 对象 js 循环 key

1.in/of对比

for...in...是es5出的循环方法,for...of...是es6推出的。两个都是迭代数据的。

  • for...in:以任意顺序迭代对象的可枚举属性。=> 根据key值来遍历
  • for...of...:遍历可迭代对象,定义要迭代的数据。

2.for...in...

//表现
let obj = {  a: 1, b: '2',  c: false, d: undefined,  e(){}, f: {  } };
obj.z = "zzz";
for(let key in obj){
  console.log(key);
}
//a  b  c  d e  f  z =>这说明for in 是根据key值遍历

2.1.mdn上对for...in...的解释

 mdn的解释,可以作如下理解:

  1. for...in...不推荐遍历有索引对象(即,数组)
  2. for...in...适合用作检测对象是否存在某属性值时
  3. for...in...循环会遍历所有可枚举属性,而在es5之前,所有给对象原型新添加的方法都是可枚举的

3.for...of...

//表现
let array = [false, 1,"2", undefined, {}, function(){}];
for (let item of  array){
   console.log(item);
}
//false, 1, 2, undefined,  {}, ƒ (){} => 不难看出

3.1.mdn上对for...of...的解释

 mdn的解释,可以作如下理解:

可迭代对象都可以使用for...of...遍历循环

 4.for...in...和for...of...使用区别

  • for...in...:遍历具有key值的对象
  • for...of...:遍历可迭代对象

 

参考---https://blog.csdn.net/weixin_44395929/article/details/109625882

标签:...,遍历,mdn,迭代,对象,js,循环,key
From: https://www.cnblogs.com/pwindy/p/17616901.html

相关文章

  • 给首布局选择项目带出明细内容js控制
    1.通过一个中间的jsp进行json查询传递<%@pageimport="java.util.Map"%><%@pageimport="java.util.ArrayList"%><%@pageimport="java.util.List"%><%@pageimport="com.velcro.workflow.pipe.service.ExtendJspServ......
  • 6. 对象解析
    6.对象解析章节目录1.解析总体流程2.类型分辨3.数值解析4.字符串解析5.数组解析6.对象解析‍6.1JSON对象结构JSON对象和数组类似,是一个复合类型,使用{}​包括,数组中每个元素都是一个JSON的value​,而对象中的每一个成员是一个键值对,以冒号':'分隔,......
  • MySQL循环外开启事务的问题
    在Golang中使用GORM操作MySQL,并在循环外开启事务,可以实现在循环内的某一个操作失败时回滚整个事务。其他操作也会被回滚,确保数据的一致性。下面是一个简单的示例代码,演示了如何使用GORM在循环外开启事务并进行相关操作:packagemainimport( "fmt" "log" "gorm.io/d......
  • nodejs preset 是什么
    preset-built-in是指预设的内置功能或选项。这意味着在软件或设备中已经提前设置好了一些功能或选项,用户可以直接使用,而无需自己进行设置或配置。这些预设的内置功能或选项通常是为了方便用户操作或提供一些常用的设置。预设(Presets)Babel的预设(preset)可以被看作是一组Babel......
  • nodejs 函数以_ 下划线开头是什么意思
    在JavaScript中,函数名称以下划线_开头通常表示该函数是私有的,意味着它只能在当前函数或对象的内部使用,而不能在外部访问或调用。这是一种命名约定,用于表示函数的可见性和访问权限。在许多JavaScript库和框架中,开发者经常使用下划线开头的函数名称来指示这些函数是供内部使用的,以......
  • nodejs 的@符号作用
    在Node.js中,@符号通常用于引用模块的路径。当使用@符号时,它会被解释为指向当前模块的根路径。这样可以使得模块引入更加简洁和可读,同时也有助于避免引入模块时出现相对路径的问题。例如,假设我们有一个名为"utils"的模块,在使用相对路径时,我们可能需要这样引入它:constutils=req......
  • Jackson —— json转换工具
    一、介绍1.一个可以实现JSON字符串和Java对象进行转换的工具类2.转换的核心类是ObjectMapper 二、ObjectMapper常用的两个方法方法名称说明publicStringwriteValueAsString(Objectobj)将一个对象转换为json字符串publicTreadValue(Stringjson,Classclaz......
  • 使用bigInt解决js计算精度问题
    1.引用mathjsnpminstallmathjs2.封装计算方法utils/math.js 3.在需要使用的文件引入和调用 ......
  • js 添加和移除disabled属性
    //js的方式//动态修改元素disabled属性functiondisableTest(element,val){document.getElementById(element).disabled=val;}document.getElementById("uid").disabled="";//启用document.getElementById("uid").disabled="disabled"......
  • nginx配置自动解压.js.gz功能
    1.修改nginx配置文件#on为启用,off为关闭gzipon;#Nginx的动态压缩是对每个请求先压缩再输出,这样造成虚拟机浪费了很多cpu,解决这个问题可以利用nginx模块GzipPrecompression,这个模块的作用是对于需要压缩的文件,直接读取已经压缩好的文件(文件名为加.gz),而不是动态压缩,对于不......