【JS】forEach, for in, for of

news/2024/7/19 12:52:07 标签: js, forEach

forEach_0">forEach遍历数组

缺点:不能同时遍历多个集合,在遍历的时候无法修改和删除集合数据,
方法不能使用break,continue语句跳出循环,或者使用return从函数体返回,对于空 数组不会执行回调函数

优点:便利的时候更加简洁,效率和for循环相同,不用关心集合下标的问题,减少了 出错的效率

实例:

//先遍历数组
  let arry=[9,8,7,6,5,4]
  array.forEach(function(value,index,arr){
      console.log(value)
  })
//输出结果为9 8 7 6 5 4
 
//首先有人疑问它能不能用来遍历对象(一开始我也不知道)?
//我们用它来遍历对象试试可不可以
   let obj={a:1,b:2,c:3,d:4}
   obj.forEach(function(value,index,oObj){
       console.log(value)
   }
//输出结果会是obj.forEach is not a function,
//所以forEach不可以遍历对象,这也是它和for in的一个区别

for in遍历对象的key、数组

缺点:某些情况下,会出现随机顺序的遍历,因为里面的值是string类型,所以增加了转换过程,因此开销较大

优点:可以遍历数组的键名,遍历对象简洁方便

实例:

//首先遍历对象
   let person={name:"老王",age:23,city:"大唐"}
   let text=""
   for (let i in person){
      text+=person[i]
   }
// 输出结果为:老王23大唐
 
//其次在尝试一些数组
   let arry=[1,2,3,4,5]
   for (let i in arry){
        console.log(arry[i])
    }
//能输出出来,证明也是可以的

for of遍历数组

优点:避免了for in的所有缺点,可以使用break,continue和return
不仅支持数组的遍历,还可以遍历类似数组的对象,支持字符串的遍历
支持map和Set对象遍历

缺点:不适用于处理原有的原生对象(原生对象是一个子集,包含一些在运动过程中动态创建的对象)

实例:

//遍历数组
   let arr=["nick","freddy","mike","james"];
    for (let item of arr){
        console.log(item)
    }
//暑促结果为nice freddy mike james
 
 
//遍历对象
   let person={name:"老王",age:23,city:"唐山"}
   for (let item of person){
        console.log(item)
    }
//我们发现它是不可以的
//但是它和forEach有个解决方法,结尾介绍

for常规

优点:程序简洁,结构清晰,循环初始化,循环变量化,循环体和循环条件位置突出

缺点:结构比while循环复杂,容易出编码错误
实例:

//首先它和forEach,forof一样不可以遍历对象
//解决办法:就是把对象先转化为数组类型- -
//有一个对象:
     let obj={a:1,b:2,c:3}
//用Object.keys属性转化
     let obj2=Object.keys(obj)
//最后就可以用来遍历了
   for (let i=0;i<obj2.length;i++){
     console.log(obj2[i])
   }
//输出结果就能出来了,forEach,for of同理
 

http://www.niftyadmin.cn/n/1486126.html

相关文章

(转)有关TinyXML使用的简单总结

From: http://www.cnblogs.com/freecoder/archive/2006/08/07/TinyXmlStapleA.html 这次使用了TinyXML后&#xff0c;觉得这个东西真是不错&#xff0c;于是将使用方法坐下总结来和大家分享。 该解析库在开源网站&#xff08;http://sourceforge.net &#xff09;上有下载&a…

关闭浏览器时实现用户登出(关闭页面时不登出)——全网最有用

1、 登录时设置cookie标志位 try {const result await login({account: values.mobile,password: shajs(sha1).update(values.password).digest(hex),verifyCode: values.code,randomNum: this.uuidNumber })this.$ls.set(ACCESS_TOKEN, result.data.access_token, 24 * 60 *…

前端技巧常用工具箱

2019独角兽企业重金招聘Python工程师标准>>> 基础&#xff1a; JavaScript tests & Compatibility tables&#xff1a; http://robertnyman.com/javascript/ http://scriptsrc.net/ &#xff08;收集了Google 提供的 js API路径&#xff0c;直接点击复制就可以获…

【JS】获取当前时间戳以及计算时间差 +【AntDesign】时间日期控件计算差值踩坑

【时间Date转时间戳】 const d Date.now() // 结果&#xff1a;1625573962353 const d1 (new Date()).valueOf(); // 结果&#xff1a;1625573962353&#xff0c;通过valueOf()函数返回指定对象的原始值获得准确的时间戳值&#xff1b;const d2 new Date().getTime(); // 结…

博客×××作

今天开通了我在互联网上的第一个博客&#xff0c;这就算我第一篇博言了。在这里开通博客主要是看好51CTO这个好的平台&#xff0c;不追求别的&#xff0c;只为那些会常用到的技术文章等找个家……转载于:https://blog.51cto.com/ytyda/502282

subversion 和apache 整合

subversion 和apache 整合 1 yum install sub* -y 2 yum install httpd-* mysql-* php-* -y 创建数据仓库,创建数据仓库的目录 3 mkdir -p /date/subversion/repos 4 mkdir -p /var/gftech/subversion/repos 5 svnadmin create /var/gftech/subversion/repos &#xff08;创建…

github如何删除repository

1、点进要删除的项目 2、点击settings 3、滑到最下方&#xff0c;点击delete this repository

Delphi笔记(整理)-符号和基本语法

空格&#xff08;#32&#xff09;和控制符&#xff08;#0 到#31&#xff0c;其中#13 叫回车符或行的结束符&#xff09;被称为空白符&#xff08;blank&#xff09;。 特殊符号是非文字和数字字符&#xff0c;或这类字符的组合&#xff0c;它们有固定的意义。 ‘[’相当于‘(.’…