本篇文章给大家带来的内容是关于js中遍历对象(5种)和遍历数组(6种)的方法总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

JS遍历数组里数组下的对象,根据数组中对象的某些值,组合成新的数组对象 阅读详情

一、遍历对象方法

1.for...in
遍历输出的是对象自身的属性以及原型链上可枚举的属性(不含Symbol属性),原型链上的属性最后输出说明先遍历的是自身的可枚举属性,后遍历原型链上的

1

2

3

4

5

6

7

8

9

10

11

12

13

eg:

var obj = { 'name': "yayaya", 'age': '12', 'sex': 'female' };

Object.prototype.pro1 = function() {};//在原型链上添加属性

Object.defineProperty(obj, 'country', {

  Enumerable: true //可枚举

});

Object.defineProperty(obj, 'nation', {

  Enumerable: false //不可枚举

})

obj.contry = 'china';

for (var index in obj) {

  console.log('key=', index, 'value=', obj[index])

}

输出结果:

key = name value = yayaya

key= age value = 12

前端(vue)入门到精通课程:进入学习

2.Object.keys()
遍历对象返回的是一个包含对象自身可枚举属性的数组(不含Symbol属性).

1

2

3

4

5

6

7

8

9

10

11

12

13

14

eg:

var obj = { 'name': "yayaya", 'age': '12', 'sex': 'female' };

Object.prototype.pro1 = function() {}

Object.defineProperty(obj, 'country', {

  Enumerable: true,

  value: 'ccc'

});

Object.defineProperty(obj, 'nation', {

  Enumerable: false //不可枚举

})

obj.contry = 'china';

Object.keys(obj).forEach(function(index) {

  console.log(index, obj[index])

});

输出结果:

name yayaya

age 12

3.Objcet.getOwnPropertyNames()
输出对象自身的可枚举和不可枚举属性的数组,不输出原型链上的属性

1

2

3

4

5

6

7

8

9

10

11

12

13

14

eg:

var obj = { 'name': "yayaya", 'age': '12', 'sex': 'female' };

Object.prototype.pro1 = function() {}

Object.defineProperty(obj, 'country', {

  Enumerable: true,

  value: 'ccc'

});

Object.defineProperty(obj, 'nation', {

  Enumerable: false //不可枚举

})

obj.contry = 'china';

Object.getOwnPropertyNames(obj).forEach(function(index) {

  console.log(index, obj[index])

});

输出结果:

name yayaya

age 12

4.Reflect.ownKeys()
返回对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

eg:

var obj = { 'name': "yayaya", 'age': '12', 'sex': 'female' };

Object.prototype.pro1 = function() {}

Object.defineProperty(obj, 'country', {

  Enumerable: true,

  value: 'ccc'

});

Object.defineProperty(obj, 'nation', {

  Enumerable: false //不可枚举

})

obj.contry = 'china';

Reflect.ownKeys(obj).forEach(function(index) {

  console.log(index, obj[index])

});

返回结果:

name yayaya

age 12

5. _.keys
用underscore插件的遍历方法只可以遍历出对象自身的可枚举属性

1

2

3

4

5

6

7

8

9

10

11

12

eg:

var obj = { 'name': "yayaya", 'age': '12', 'sex': 'female' };

Object.prototype.pro1 = function() {}

Object.defineProperty(obj, 'country', {

  Enumerable: true,

  value: 'ccc'

});

Object.defineProperty(obj, 'nation', {

  Enumerable: false //不可枚举

})

obj.contry = 'china';

console.log(_.keys(obj));

输出结果:

['name','age','sex']

二.遍历数组方法

1.forEach

1

2

3

4

5

eg:

var arr = ['a', 'b', 'c', 'd'];

arr.forEach(function(value, index) {

  console.log('value=', value, 'index=', index);

})

输出结果:

value = a index = 0

value = b index = 1

value = c index = 2

2.map
可以对遍历的每一项做相应的处理,返回每次函数调用的结果组成的数组

1

2

3

4

5

eg:

var arr = ['a', 'b', 'c', 'd'];

arr.map(function(item, index, array) {

  console.log(item, index);

})

输出结果:

a 1

b 2

c 3

3.for循环遍历

1

2

3

4

5

eg:

var arr = ['a', 'b', 'c', 'd'];

for (var i = 0; i < arr.length; i++) {

  console.log(i, arr[i])

}

输出结果:

4.for...in

1

2

3

4

5

eg:

var arr = ['a', 'b', 'c', 'd'];

for (var i in arr) {

  console.log('index:', i, 'value:', arr[i])

}

输出结果:

index:0 value:a

index:1 value:b

5.for...of(es6)
只遍历出value,不能遍历出下标,可遍历出Symbol数据类型的属性,此方法作为遍历所有数据结构的统一的方法

1

2

3

4

5

eg:

var arr = ['a', 'b', 'c', 'd'];

for (var value of arr) {

  console.log('value', value)

}

输出结果:

value a

value b

value c

6.利用underscore插件

1

2

3

4

5

6

7

eg:

var arr = ['a', 'b', 'c', 'd'];

var _ = require('underscore');

_.each(arr, function(value, index, arr) {

  console.log(value, index, arr)

})

输出结果:

a 0 ['a','b','c','d']

b 1 ['a','b','c','d']

c 2 ['a','b','c','d']

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

相关推荐

嵌入式Linux网络调试:YT8531/YT8521 PHY驱动移植与设备树配置避坑指南

本文深入解析嵌入式Linux系统中YT8531/YT8521 PHY驱动移植与设备树配置的关键技术,涵盖内核驱动适配、RGMII接口时序调整及常见问题排查。针对Motorcomm千兆以太网PHY芯片,提供详细的设备树配置示例和调试技巧,帮助开发者规避典型设计陷阱,确保网络功能稳定运行。

weixin_42525632的博客 674

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万+

Cesium创建无人机视锥,同步视锥与鹰眼地图视角,实现视锥键盘控制。解决视锥初始化位置不准确问题等

本文描述了一个基于Cesium的3D视锥体可视化系统开发过程。系统实现了主视图与鹰眼视图的双屏联动,支持通过键盘控制视锥体的空间移动(WASD前后左右,Q/E旋转,C/Z升降),并实时同步更新两个视图。关键技术包括:1)基于主视图Scene创建Camera实现视锥体精确绘制;2)通过PerspectiveFrustum设置视锥参数;3)建立双视图的相机位置及视角同步机制。目前暂未实现视锥体far/near边界在鹰眼视图中的可视化,该系统可应用于无人机视角监控等三维场景交互需求。

coder_bin的博客 1592

js遍历对象数组的方法

遍历对象和数组的方法

qq_48943782的博客 2531

ubuntu通过qemu安装银河麒麟V10_Arm_v8 (kylin_v10_飞腾/鲲鹏版)

一、windows下安装vmware虚拟机 二、ubuntu下载地址 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/ubuntu-20.04.3-live-server-amd64.iso 三、vmware中新建虚拟机,并使用ubuntu-20.04.3-live-server-amd64.iso作为启用盘 。。。在虚拟机中安装ubuntu(略) 四、配置ssh(如果ssh登录不上时配置) 修改openssh的配置 vi /etc/s

u010533742的博客 8704

基于分段线性近似的Softmax硬件加速器设计

本文深入探讨了基于分段线性近似的Softmax硬件加速器设计。针对深度学习模型中Softmax函数在硬件实现时指数运算成本高昂的问题,提出用分段线性拟合替代传统泰勒展开,通过一次乘加操作高效完成计算,并详细分析了输入范围压缩、精度与硬件资源权衡、以及包含地址生成、参数查找、乘加计算和归一化的完整硬件架构。该方法在保证精度的同时,显著提升了AI边缘芯片的推理速度和能效。

weixin_28278377的博客 313

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

基因树构建全流程:从OrthoFinder到iTOL的保姆级教程(附兰科植物案例)

本文提供了一份从OrthoFinder到iTOL的基因树构建全流程保姆级教程。详细解析了利用OrthoFinder构建物种树、IQ-TREE构建无根基因树、Notung进行树调和生根,以及最终在iTOL中实现专业可视化的每一步操作与实战经验,并以兰科植物NB-ARC基因家族为例进行演示,帮助研究者系统掌握基因树分析方法。

tequila的博客 523

php 遍历对象数组,js中遍历对象(5种)和遍历数组(6种)的方法总结

本篇文章给大家带来的内容是关于js中遍历对象(5种)和遍历数组(6种)的方法总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。一、遍历对象方法1.for...in遍历输出的是对象自身的属性以及原型链上可枚举的属性(不含Symbol属性),原型链上的属性最后输出说明先遍历的是自身的可枚举属性,后遍历原型链上的eg:var obj = { 'name': "yayaya", 'age...

weixin_28715953的博客 319

Versal - 从零构建Petalinux 2024.2 AI边缘计算平台(VD100+SDT+JupyterLab实战)

本文详细介绍了如何从零开始,基于AMD Versal VD100开发板和Petalinux 2024.2构建AI边缘计算平台。内容涵盖开发环境搭建、Petalinux工程创建与配置、SDT新流程实战、启动SD卡制作,并最终集成JupyterLab与Conda,打造出开箱即用的交互式AI开发环境,帮助开发者快速进行算法验证与部署。

5f4d3s2a1q的博客 489

软考嵌入式 第五讲 嵌入式Linux系统技术

5.1 inittab配置文件 Linux实时操作系统开机引导时首先启动内核,由内核检查和初始化硬件设备,载入设备的驱动程序模块,安装root文件系统,然后内核将启动一个名为init的进程,它是系统运行的第一个进程,进程号为1。在init运行完成并启动其他必要的后续进程后,系统开始运行,引导过程结束。 在任何时候,可以在文件inittab中添加新的记录项。重新检查inittab文件时,可以通过命令:init q/ Q使init进程立即重新读取并处理文件inittab。 5.1.1 inittab文件记录

Leon的博客 526

js中php遍历数组,总结javascript中遍历数组的几种方法

本篇文章给大家总结了一些javascript遍历数组的几种方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。有几种方法可以遍历数组,下面将逐个罗列!while循环let index = 0;const array = [1, 2, 3, 4, 5];while (index < array.length) {console.log(array[index]);index+...

weixin_39957027的博客 213

LeRobot 入门教程(五)异步推理

本文介绍了基于SmolVLA的异步推理技术在机器人控制中的应用。通过将动作预测与执行解耦,异步推理消除了传统同步推理中的等待延迟,使机器人行为更加流畅。文章详细讲解了如何安装依赖、启动策略服务器和机器人客户端,并重点说明了关键参数actions_per_chunk和chunk_size_threshold的调整方法。实验表明,异步推理能显著提升机器人响应速度,特别适合大规模模型应用。最后,文章建议用户根据具体硬件和任务需求优化参数配置,以获得最佳性能。

2506_90492529的博客 1644

js怎么弄list_javascript如何遍历list?

javascript如何遍历list?下面本篇文章给大家介绍一下JS中对List、Map的各种遍历方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。var list1 = ["number","name"];var list2 = ["36","Crown","15","Faker","Swift","68","Dandy"];var map_demo = { name: "J...

weixin_42108948的博客 9085

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

数学建模模型总结

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

javascript数组常用的遍历方法

本篇文章给大家带来的内容是关于javascript数组常用的遍历方法(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 前言 本文主要介绍数组常见遍历方法:forEach、map、filter、find、every、some、reduce,它们有个共同点:不会改变原始数组。 一、forEach:遍历数组 1 2 3 4 ...

weixin_30791095的博客 223

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

html5怎么定义图片数组,javascript中数组定义的几种方式是什么?

javascript中怎么定义数组?下面本篇文章给大家介绍一下javascript数组定义的几种方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。1、什么是数组数组就是一组数据的集合其表现形式就是内存中的一段连续的内存地址数组名称其实就是连续内存地址的首地址2、关于js中的数组特点数组定义时无需指定数据类型数组定义时可以无需指定数组长度数组可以存储任何数据类型的数据(比如说一个...

weixin_39613540的博客 401

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

html中数组的定义,javascript中数组定义的几种方式是什么?

javascript中怎么定义数组?下面本篇文章给大家介绍一下javascript数组定义的几种方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。1、什么是数组数组就是一组数据的集合其表现形式就是内存中的一段连续的内存地址数组名称其实就是连续内存地址的首地址2、关于js中的数组特点数组定义时无需指定数据类型数组定义时可以无需指定数组长度数组可以存储任何数据类型的数据(比如说一个...

weixin_42241168的博客 455

php克隆数组,JavaScript中数组克隆的方法介绍(附代码)

本篇文章给大家带来的内容是关于JavaScript中数组克隆的方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。js主要分基本数据类型及引用数据类型两大类基本数据类型包括:number,string,undefine,null,boolean,Symbol(es6新增)引用数据类型:Object,Array,Function,Data等注意:基本数据类型放在**栈空...

weixin_30456719的博客 221

for循环追加html js_javascript for循环怎么写?

javascript for循环怎么写?下面本篇文章给大家介绍一下Javascript中for循环语句的几种写法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。for循环的语句格式1、循环语句的组成(1)初始化语句:一条或者多条语句,这些语句完成一些初始化操作(2)判断条件语句:这是一个boolean 表达式,这个表达式能决定是否执行循环体(3)循环体语句:这个部分是循环体语句,...

weixin_39926588的博客 255

php for循环in的用法,JavaScript学习之for循环与for/in循环介绍

本篇文章就给大家带来JavaScript学习之for循环与for/in循环介绍。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。循环可以将代码块执行指定的次数。JavaScript 支持不同类型的循环:for - 循环代码块一定的次数for/in - 循环遍历对象的属性while - 当指定的条件为true,循环指定的代码块do/while - 当指定的条件为true,循环指定的代...

weixin_30487899的博客 404

html实现页面中内容居中显示图片,javascript怎么让图片居中显示?

javascript怎么让图片居中显示?下面本篇文章给大家介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。javascript让图片居中显示的方法1、准备一个图片,如图,我将图片放到了和HTML同级目录中2、编写HTML文件,如代码所示,写了一个div,在style中设置了div的边框,宽度高度等,在div中添加一个图片标签img3、页面显示结果如图所示4、现在我们来实现...

weixin_28704239的博客 5683

省市联动代码php,javascript实现省市联动的代码分享

本篇文章给大家带来的内容是关于javascript实现省市联动的代码分享,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。前言:这个系列主要是对之前学习JavaScript实现的一些小demo的总结,总觉得不能这样学过了就算了,趁着假期就好好总结一下吧。在平常的网站开发中,我们常常会遇到这样的一个需求:在注册页面或者完善个人信息时要选择个人所在地,当选择省时,该省对应的市也会自动更新...

weixin_31983133的博客 395

js与html常用操作,前端常用的JavaScript操作(代码实例)

本篇文章给大家带来的内容是关于前端常用的JavaScript操作(代码实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。1.删除字符串中指定的一段字符例:删除"10km"中的kmvar str = "10km"//方法一:var res = str.replace('km', '')//方法二:var res = str.split('km').join('')//join方法...

weixin_32586767的博客 204

html模板引擎实现,js中使用template模板引擎实现的一个例子(代码)

本篇文章给大家带来的内容是关于js中使用template模板引擎实现的一个例子(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。basic-demo{{if isAdmin}}{{title}}{{each list as value i}}索引 {{i + 1}} :{{value}}{{/each}}{{/if}}var data = {title: '基本例子',isA...

weixin_36064196的博客 349

python列表嵌套取值_取值最新:python列表切片和嵌套列表取值操作详解_爱安网 LoveAn.com...

关于"取值"的最新内容 聚合阅读这篇文章主要介绍了解决VUEX的mapState/...mapState等取值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...今天小编就为大家分享一篇python列表切片和嵌套列表取值操作详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...今天小编就为大家分享一篇numpy.ndarray 实现对特定行或列取值,具有很...

weixin_31258847的博客 810
上一篇: 跨域是什么?有哪些解决跨域的方法和方案?
Mrwang21
博客等级 码龄5年 4粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值