JavaScript常用的数组和对象遍历方法_js数组和对象的遍历方式,以及几种方式的比较

JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解 本文给大家js遍历数组和遍历对象的区别,一般来说for用来遍历数组对象而for-in用来遍历非数组对象。接下来小编给大家带来了js遍历数组和对象的区别及js递归遍历对象、数组、属性的方法详解,一起看下吧 立即下载
   var arr=['a','b',,'c','d']

在这里插入图片描述
for、forEach、for…of这三种方式,都是遍历数组的方法,根据实际的场景自己选择使用那个方法,如果信息比较多,那么可以选择forEach,如果只是单纯的取到实际的元素,那么可以使用for…of

some、every的区别
  1. 二者都是用来做数组条件判断的,都是返回一个布尔值。
  2. some若一元素满足条件,返回true,循环中断,所有元素不满足条件,返回false
  3. every 与some相反,若有一个元素不满足,返回false,循环中断,所有元素都满足返回true
    代码展示和运行结果
  <script>
 // 1. 二者都是用来做数组条件判断的,都是返回一个布尔值。
 // 2. some若一元素满足条件,返回true,循环中断,所有元素不满足条件,返回false
 // 3. every 与some相反,若有一个元素不满足,返回false,循环中断,所有元素都满足条件返回true
 // 判断数组当中的元素是否复合某些条件
 var arr=[27,31,-1,56,15,3]
 console.log("以下是some循环条件判断结果")
 var flag=arr.some(function(item){
 return item > 0;
 })
 console.log(flag)
 console.log("以下是every循环条件判断结果")
 var result=arr.every(function(item){
 return result > 0;
 })
 console.log(result)
 </script>

在这里插入图片描述

fiter、map的区别
  1. 二者都是生成一个新数组,都不会改变原数组不包括遍历对象和数组时,在回调函数中操作的元素对象。
  2. 二者都会跳过空元素
  3. map会将回调函数的返回值组成一个新数组,数组长度与原数组一致
  4. filter会将复合回调函数条件的元素组成一个新数组
  5. filter可以想象成过滤数组元素(符合条件要求的)
  6. map 变换数组元素(遍历元素的同时,将元素进行变换)
    代码展示和运行结果
  <script>
 // 1. 二者都是生成一个新数组,都不会改变原数组不包括遍历对象和数组时,在回调函数中操作的元素对象。
 // 2. 二者都会跳过空元素
 // 3. map会将回调函数的返回值组成一个新数组,数组长度与原数组一致
 // 4. filter会将复合回调函数条件的元素组成一个新数组

 // filter可以想象成过滤数组元素(符合条件要求的)
 // map 变换数组元素(遍历元素的同时,将元素进行变换)
 var arr=[1,2,3,4,5,6,7,8]
 console.log("以下是filter循环的生成的结果")
 var resArr1=arr.filter(function(item){
 return item > 5
 })
 console.log(resArr1)
 console.log("以下是map循环的生成的结果")
 var resArr2=arr.map(function(item){
 return item \* 10
 })
 console.log(resArr2)
 </script>

在这里插入图片描述

find、findindex的区别
  1. 二者都是用来查找元素
  2. find方法放回数组man粗callback函数的第一个元素的值。如果不存在返回undefined
  3. findIndex它返回数组中找到的元素索引,而不是其值,若郭不存在返回-1
    遍历查找元素
  <script>
 // 1. 二者都是用来查找元素
 // 2. find方法放回数组man粗callback函数的第一个元素的值。如果不存在返回undefined
 // 3. findIndex它返回数组中找到的元素索引,而不是其值,若郭不存在返回-1
 // 遍历查找元素
 var arr=[1,2,3,4,5,6,7,8]
 console.log("以下是find循环的查找的结果")
 var resArr1=arr.find(function(item){
 return item > 5
 })
 console.log(resArr1)
 var resArr2=arr.find(function(item){
 return item > 8
 })
 console.log(resArr2)
 console.log("以下是findIndex循环的查找满足元素的索引结果")
 var resArr3=arr.findIndex(function(item){
 return item > 5
 })
 console.log(resArr3)
 var resArr4=arr.findIndex(function(item){
 return item > 8
 })
 console.log(resArr4)
 </script>

在这里插入图片描述

reduce(非常强大一个方法)

在这里插入图片描述

  1. reduce方法接收俩个参数,第一个参数是一个回调函数(callback),第二个参数是初始值(initialValue)
  2. 回调函数接收四个参数:
  • accumulator:他是截止到当前元素,之前的所有数组元素被回调函数处理累计的结果
  • current:当前被执行的数组元素
  • currentIndex:当前被执行的数组元素索引
  • sourceArray:原数组,也就是调用reduce方法的数组
    如果不传入初始值,reduce方法会从索引1开始执行回调函数,如果传入初始值,将从索引0开始,并从初始值的基础上累积执行回调
    遍历
  <script>
 // 1. reduce方法接收俩个参数,第一个参数是一个回调函数(callback),第二个参数是初始值(initialValue)
 // 回调函数接收四个参数:
 // accumulator:他是截止到当前元素,之前的所有数组元素被回调函数处理累计的结果
 // current:当前被执行的数组元素
 // currentIndex:当前被执行的数组元素索引
 // sourceArray:原数组,也就是调用reduce方法的数组
 // 如果不传入初始值,reduce方法会从索引1开始执行回调函数,如果传入初始值,将从索引0开始,并从初始值的基础上累积执行回调
 //有初始值
 var arr=[1,2,3,4,5,6,7,8]
 console.log("以下是reduce的结果")
 arr.reduce(function(total,cur,curIdx,array){
 console.log(cur,curIdx,array)
 },0)
 //无初始值
 arr.reduce(function(total,cur,curIdx,array){
 console.log(cur,curIdx,array)
 })
 </script>

有初始值运行结果
在这里插入图片描述
无初始值运行结果

在这里插入图片描述

reduce的第一个形参的作用

实现累加代码

    // total第一个形参的作用
 console.log("以下是reduce累加的结果")
 var res=arr.reduce(function (total, cur) {
      return total+cur
    },0)
    // 以上代码分析初始值是0,cur是每次遍历的值,total默认就是初始值0 返回的值会给total然后继续遍历累加
    console.log(res)

在这里插入图片描述
利用reduce求数组最大值最小值

    console.log("以下是利用reduce求数组最大值最小值结果")
    var min=arr.reduce(function (minNum, cur) {
      return minNum<=cur?minNum:cur
    },0)
    var max=arr.reduce(function (maxNum, cur) {
      return maxNum>=cur?maxNum:cur
    },0)
    console.log('最小值',min,'最大值',max)

在这里插入图片描述

二、对象遍历比较

在这里插入图片描述

  • for…in
  • Object.keys()
  • Object.values()
  • Object.entries()
  • Object.getOwnPropertyNames

声明一个对象,用于方法使用·

    var obj={
      name:'路飞',
      age:18,
      height:160
    }

所有对象上的原型声明一个原型对象fn方法

  Object.prototype.fn=function(){
      console.log('hello')
    }

for…in

for…in返回的是所有能够通过对象访问的、可枚举的属性,即包括实例中的实现,也包括存在在你原型中的属性

  <script>
 // 声明一个对象,方便以下方法使用
 var obj={
 name:'路飞',
 age:18,
 height:160
 }
 // 所有对象上的原型声明一个原型对象fn方法
 Object.prototype.fn=function(){
 console.log('hello')
 }
 // for...in返回的是所有能够通过对象访问的、可枚举的属性,即包括实例中的实现,也包括存在在你原型中的属性
 console.log('for..in遍历结果')
 for(var key in obj){
 console.log(key,obj[key])
 }
 </script>

在这里插入图片描述

Object.keys()

Object.keys()把对象自身可枚举的属性值,但是不包括原型对象中的属性,然后返回一个由属性名组成的数组

  <script>
 // 声明一个对象,方便以下方法使用
 var obj = {
 name: '路飞',
 age: 18,
 height: 160
 }
 // 所有对象上的原型声明一个原型对象fn方法
 Object.prototype.fn = function () {
 console.log('hello')
 }
 // Object.keys()把对象自身可枚举的属性值,但是不包括原型对象中的属性,然后返回一个由属性名组成的数组
 console.log('Object.keys()遍历结果')
 console.log(Object.keys(obj))
 </script>

在这里插入图片描述

Object.values()

Object.values()把对象自身可枚举的属性值,但是不包括原型对象中的属性,然后返回一个由属性值组成的数组

  <script>
 // 声明一个对象,方便以下方法使用
 var obj = {
 name: '路飞',
 age: 18,
 height: 160
 }
 // 所有对象上的原型声明一个原型对象fn方法
 Object.prototype.fn = function () {
 console.log('hello')
 }
 // Object.values()把对象自身可枚举的属性值,但是不包括原型对象中的属性,然后返回一个由属性值组成的数组
 console.log('Object.values()遍历结果')
 console.log(Object.values(obj))
 </script>

在这里插入图片描述

Object.entries()

Object.entries()把对象自身可枚举的属性值,但是不包括原型对象中的属性,然后返回一个二维数组,在二维数组当中,每个子数组由对象的属性名和属性值组成

  <script>
 // 声明一个对象,方便以下方法使用
 var obj = {
 name: '路飞',
 age: 18,
 height: 160
 }
 // 所有对象上的原型声明一个原型对象fn方法
 Object.prototype.fn = function () {
 console.log('hello')
 }
基于Multisim设计电子密码锁 一、设计任务与要求:(可软件仿真实现)1)基本要求:设计一个数字密码锁,要求只有按正确的顺序,输入正确的密码,方能输出开锁信号,实现开锁。设置三个正确的密码键和若干个伪键,任何伪键按下后,密码锁都无法打开。每次只能接受四次按键信号,而且第四个键只能是“确定”或者“重输键”,其他无效。能显示已输入键的个数2)扩展要求:第一次密码输错后,可以输入第二次,但是连续三次输错,密码将被锁,必须按复位键才能解锁。 阅读详情

相关推荐

深入理解梅尔刻度、梅尔滤波器组和梅尔时频谱图

读取一段音频,使用短时傅里叶变换,得到普通的时频谱图,然后绘制梅尔滤波器组,值得注意的是,librosa的梅尔滤波器组函数还带有权重归一化功能,即对一个三角形滤波器的每个权重,都除以该三角形的面积,如果不希望进行该归一化,设置参数。从公式可见,对数部分可以以自然对数为底数,也可以以10为底数,不同的底数对应不同的系数,要确定当前的系数,只需要代入(1000Hz, 1000mel)即可。其中,m是当前滤波器的序号,表征了当前的时间段,k是当前频率的序号,表征了当前正在对哪一频率的。

DEDSEC_Roger的博客 1万+

js中数组的遍历的几种方法

javascript中数组的几种遍历方法

1000001000 9万+

从Mate到Mate40 Pro+:华为旗舰核心配置演进与选购避坑指南

本文回顾了华为Mate系列从初代到Mate40 Pro+的核心配置演进历程,重点分析了处理器性能、影像系统、屏幕设计及续航快充的技术突破。针对选购需求,提供了区分版本、5G选择及存储配置的实用避坑建议,帮助消费者明智选择华为旗舰机型。

weixin_30015371的博客 494

JS总结——数组,对象遍历的方法

对于数组或者对象的遍历,筛选,提取等操作是前端开发中经常有的需求,不要再只会写普通的for循环了,虽然普通的for循环已经能完成一切的功能的,是一个特殊方法,但是针对各种需求,js给我们提供了许多方法,来更优雅的遍历,来学习一下吧! 1. for in for in 循环,数组和对象都可以遍历,item为array的下标,或者object的key这样的代码,比起for循环可读性能强一些。 2.for of 与for in 不同的是,for of只能遍历数组,item为数组元素的值 3.Object.keys

qq_53008257的博客 1万+

WPS JS宏智能识别代码段并设置样式(完整可用版)

之前,我们已经经历了多次迭代,解决了许多问题,比如识别代码块、处理多行导入、调整样式等。现在他们需要一份全面的文档来解释整个代码的结构和工作原理。(5)智能行分析(含URL和注解检测优化)function analyzeLineEnhanced(rawText,trimmedText,codeSymbols,codePatterns, singleLinePatterns)该解决方案在保持高性能的同时,提供了良好的可扩展性,能够适应不同组织的代码规范需求,是WPS生态中专业文档处理的创新实践。

搏博的专栏 1822

MFC实现图书管理系统(附完整源码)

MFC实现图书管理系统(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 800

js遍历对象数组的方法

遍历对象和数组的方法

qq_48943782的博客 2531

(功能安全六)硬件FMEDA计算

FMEDA(故障模式、影响与诊断分析)是功能安全验证的核心方法,通过量化分析硬件故障模式及其影响,计算SPFM、LFM、PMHF等关键指标。分析过程包含六大步骤:计算元器件失效率、识别故障模式、评估安全机制诊断覆盖率、分类计算各类失效率、量化指标计算及设计优化。输入需要系统架构图、硬件故障模式清单等资料,输出安全指标达标情况及改进建议,确保设计满足ASIL等级要求。该方法通过系统化的故障分类和量化评估,为硬件安全设计提供科学依据。

Dayongger的博客 1449

JS 对象和数组的遍历方法

目录 一、JS 遍历数组 1、for 循环遍历数组 2、使用for ……in 遍历数组 3、for……of 遍历数组 4、forEach 遍历数组 5、map遍历数组 二、JS 遍历对象 1、for……in 循环遍历对象 2、Object.keys 遍历对象 3、Object.getOwnPropertyNames(obj) 遍历对象 一、JS 遍历数组 1、for 循环遍历数组 // 1、for循环 let arr = ['d', 'a', 'w', 'n']; for (le

m0_61700036的博客 7505

槽型光电开关传感器原理图设计,已量产(光电传感器)

在嵌入式设备的位置限位、物料计数等场景中,槽型光电开关是性价比极高的传感器方案 —— 它通过遮挡发射器与接收器之间的光路实现电平切换,电路简单且抗干扰性优于漫反射式光耦。今天分享一个实际项目中落地的槽型光电开关检测电路,从器件选型到逻辑设计都做了简化适配,适合小批量原型或低成本产品的需求。

不脱发的程序猿 716

11.8 LangGraph生产级AI Agent开发:从节点定义到高并发架构的终极指南

本文介绍了如何使用 LangGraph 构建生产级 AI Agent,重点解析了 LangGraph 的核心设计、节点与边的实现方法论、生产级实现技巧以及性能优化策略。LangGraph 通过图结构抽象复杂 AI 工作流,核心组件包括节点、边、状态和检查点。节点通过 Python 函数封装原子业务逻辑,边通过条件分支实现动态工作流。生产级实现技巧包括状态管理、多会话控制和错误处理机制。性能优化策略涉及并行执行和缓存机制设计。文章还提供了旅行规划 Agent 的实战案例和常见问题解决方案,帮助开发者构建高效、

yonggeit的博客 3268

JavaScript数组去重的几种方法

这个老问题,网上普遍都有了,为什么要再写一遍呢,主要是为了记个笔记。。。 遍历时搜索结果数组 思路很明确,如下 新建一个数组存放结果 循环遍历原数组,对于每一个元素,在结果数组中搜索是否存在 若不存在则存入结果数组中,返回第二步,直到循环结束 代码就不上了,网上一大把。 这是最直接的方法,但由于嵌套了循环,效率不高。 先排序后比较 先将原数组进行排序 新...

weixin_30439067的博客 137

【AI智能体】QClaw 对接GitHub处理自动化任务实战操作详解

QClaw 对接GitHub处理自动化任务实战操作详解

congge 4867

常用js的数组方法和对象方法

js常用的数组方法和对象方法常用js的数组方法和对象方法数组的方法对象的方法 常用js的数组方法和对象方法 从此以后也要写博客辣,用来记录常见的问题和碰到的新问题。最近记忆力越来越差了。 数组的方法 1.Array.map() 此方法是给数组中的每项数据都添加一个方法,结果作为一个新的数组返回,并不会改变原来的数组。 2.Array.forEach() 此方法是给数组的每一项数据循环添加一个方...

qq_44890872的博客 4563

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

JavaScript常用的数组和对象遍历方法

这篇文章主要归纳一下JavaScript数组和对象遍历中的一些方法和区别

stc_ljc的博客 12万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JS几种数组遍历方式总结

JS数组遍历的几种方式JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比第一种:普通for循环代码如下:for(j = 0; j &lt; arr.length; j++) { } 简要说明: 最简单的一种,也是使用频率最高的一种,虽然性能不弱,但仍有优化空间第二种:优化版for循环代码如下...

宁静致远 24万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JavaScript:js数组/对象遍历方法

undefinedfor使用最基本的for循环可以遍历数组。for...of语句用来遍历可迭代对象(包括数组、Set、Map、字符串等),它可以替代传统的for循环和forEach方法。for...of循环每次迭代都将返回一个值,而不是索引。循环还可以遍历字符串,并且能够正确处理 Unicode 字符。需要注意的是:for...of 循环不能遍历普通对象,因为它们不是可迭代对象。对于普通对象,可以使用for...in循环来遍历对象的属性。

snow的博客 7323

JS数组遍历的几种方式

JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代码如下: for(j = 0; j < arr.length; j++) { } 简要说明: 最简单的一种,也是使用频率最高的一种,虽然性能不弱,但仍有优化空间 第二种:优化版for循环 代码如下: for...

zyxzp2012的博客 2119

JavaScript基础-数组/对象/Map/Set/字符串 常用方法

JavaScript 数组常用方法包括:`forEach`、`map`、等遍历方法,`push`/`pop`、`unshift`/`shift`、`splice` 等修改方法,以及 `slice`、`concat`。对象常用方法有:`Object.keys`、`values`、操作属性,`hasOwnProperty` 检查属性。Map 支持任意类型键的键值对存储,Set 用于存储唯一值。字符串可通过 [...str].reverse().join('') 翻转,用 includes 检查包含。

m0_51324570的博客 1620

JavaScript 遍历对象的五种方式

for...in:遍历对象的所有属性,包括继承的属性,但可以通过排除继承的属性。:获取对象的键名数组,结合forEach()遍历。:获取对象的值数组,结合forEach()遍历。:获取对象的键值对数组,结合forEach()或for...of遍历。每种方法都有其特定的使用场景哦!你可以根据具体的需求来选择最适合的方式。希望这篇文章能帮助你更好地掌握 JavaScript 中的对象遍历!🎉。

m0_62599305的博客 1933

【JavaScript】JS数组去重的几种常见方法

JS数组去重的几种常见方法 一、简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i &amp;lt; array.length; i++){ ...

Dream_Lee的博客 1983

js数组对象的几种遍历方式

1.数组的遍历 首先我们先简单介绍了跳出循环的几种方式 // 跳出循环的方式有如下几种 // return 函数执行被终止 // break 循环被终止 // continue 循环被跳过 1.普通版for:最简单的一种,也是使用频率最高的一种,虽然性能不弱,但仍有优化空间  for 循环中的变量 i,由于 ES5并没有块级作用域的存在,它在循环结束以后仍然存在于内存中,所以建议...

想飞的猪的博客 7438

JavaScript遍历数组、对象方法总结以及性能对比

JS数组遍历的几种方式 JS的数组遍历其实有挺多种的,for、for-in、forEach,for-of,map等等一些方法。 for循环 这是最常见也最简单的一种循环方式。 &lt;script&gt; var arr = [1,2,3,4,5]; for(var i = 0; i &lt; arr.length; i++){ co...

书山有路勤为径,学海无涯苦作舟 3170

js中遍历对象和数组的方法

js遍历对象的方法: 第一种方法:for in let obj = { name: 'lulu', id: 1, age: 18 } for (let key in obj) { console.log( key + ':' + obj[key] ) } // 输出结果 // name:lulu // id:1 // ag...

lulu吖的博客 995

js数组遍历和对象遍历

针对js各种遍历作一个总结分析,从类型用处:分数组遍历和对象遍历;还有性能,优缺点等。 JS数组遍历: 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3,9]; for ( var i = 0; i &lt;arr.length; i++){ console.log(arr[i]); } 2,优化版for循环:使用变量,将长度缓存起来,避免重复获取长度...

hahahhahahahha123456的博客 4896
上一篇: Excel VBA AutoFilter 多字段筛选_用vba实现任意列包含字符的高级筛选
下一篇: NPM包的安装、更新、卸载_卸载npm
普通网友
博客等级 码龄5年 3419粉丝 477原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值