js对象遍历和合并

js对象遍历和合并对象遍历对象 键 值 object keys 会返回对象中键的数组 object values 会返回对象中值的数组 Object entries 是返回一个给定对象自身可枚举属性的键值对数组 varvarobj a 1 b 2 c 4 目标对象 console log 索引 Object keys obj console log 价值 Object values obj console log entries 输出 Object ent

对象遍历

 var var obj = { 
   a:1,b:2,c:4}; //目标对象 console.log("索引"+Object.keys(obj)); console.log("价值"+Object.values(obj)); console.log("entries输出"+Object.entries(obj)); 

输出

索引a,b,c 价值1,2,4 entries输出a,1,b,2,c,4 

可以使用Object.keys()收集keys,然后通过 key 去对象取对应的值:

var var obj = { 
   a:1,b:2,c:4}; //目标对象 for(let key of Object.keys(obj)) { 
    let m = obj[key]; console.log(m); } 

输出

1 2 4 

Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for…in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。

Object.entries() 返回键值对数组,如 [ [key1, value1], [key2, value2], …, [keyN, valueN] ]。

var var obj = { 
   a:1,b:2,c:4}; //目标对象 for(let [key , value] of Object.entries(obj)) { 
    console.log(key+':'+value); } 

输出

a:1 b:2 c:4 

对象合并

Object.assign可以实现对象的合并。

Object.assign(target, …sources)

  • Object.assign会将source里面的可枚举属性复制到target,如果和target的已有属性重名,则会覆盖。
  • 后续的source会覆盖前面的source的同名属性。
  • Object.assign复制的是属性值,如果属性值是一个引用类型,那么复制的其实是引用地址,就会存在引用共享的问题。
 var target = { 
   a : 1}; //目标对象 var source1 = { 
   b : 2}; //源对象1 var source2 = { 
   c : 3}; //源对象2 var source3 = { 
   c : 4}; //源对象3,和source2中的对象有同名属性c var obj = Object.assign(target,source1,source2,source3); console.log(obj); 

输出

{ 
   a: 1, b: 2, c: 4} 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178501.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午5:09
下一篇 2026年3月26日 下午5:09


相关推荐

  • Vim详细配置_mini5配置

    Vim详细配置_mini5配置Vim配置要点一、在终端中开打.vimrc文档二、在.vimrc文档中添加配置内容1.常用设置2.自动备份3.自动补全三、保存退出四、代码高亮不显示一、在终端中开打.vimrc文档vi~/.vimrc二、在.vimrc文档中添加配置内容1.常用设置setnumber “显示行号syntaxon “语法高亮度显示setautoindent “vim使用自动对起,也就是把当前行的对起格式应用到下一行setsmartindent “依据上面的对起格式,智能的

    2022年9月29日
    7
  • Java自定义注解Annotation详解[通俗易懂]

    简介开发中经常使用到注解,在项目中也偶尔会见到过自定义注解,今天就来探讨一下这个注解是什么鬼,以及注解的作用和自定义注解。列举开发中常见的注解@Override:当重写父类的方法时一般都会在方法上标注上此注解(我们最经常看到的toString()方法上总能看到这货)@Deprecated:用于标记某个方法已经过期,请使用新的方法来替代已经废弃的方法@SuppressWarnings:让编译器或

    2022年4月13日
    69
  • linux内存分析工具pmap

    linux内存分析工具pmappmap 工具是 linux 的工具 能够查看进程用了多少内存 还能分析内存用在上面环节 对于一些长期占用内存居高不下的程序可以分析其行为 命令简单 信息简洁

    2025年7月24日
    5
  • 终于把TCP协议与UDP协议给整明白了[通俗易懂]

    终于把TCP协议与UDP协议给整明白了[通俗易懂]网络编程有三个要素,分别是IP地址、端口号和通信协议,本文主要讲述的是TCP与UDP这两种通信协议,以及编程的实现。

    2022年6月7日
    63
  • Java设计专题及高级导向「建议收藏」

    Java设计专题及高级导向「建议收藏」Java设计专题及高级导向

    2022年4月22日
    33
  • 数据库课程设计-宿舍管理系统「建议收藏」

    数据库课程设计-宿舍管理系统「建议收藏」最近写完了数据库的课程设计,想把整个源码的编辑过程发出来。程序很简单,需要有很多完善的地方,在这里,我想和大家分享写这个程序的心路历程。首先,在开始写程序之前。我们需要先写一些工具类,来辅助完成整个程序的构建,在这里我把连接jdbc的代码放在了一个包下面。如下图:在这里我们先来写最基本的类,jdbcDrive,这是负责和数据库进行连接,并且执行语句的类publ…

    2022年5月19日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号