码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数组合并和对象合并的方法


    数组合并

    此处说明两种比较简单的方式:

    • concat实现

    特点:不改变原数组,生成新数组。

    •  ES6的扩展运算符(...)实现:

    特点:简洁。

    缺点:两种方式都存在的问题是:没有过滤掉重复元素“4”。

    扩展:过滤数组的重复元素实现。

    1. let arr1=[1,2,3,4];
    2. let arr2=[4,5,6,7,8];
    3. // 需求:求arr1和arr2合并后的数组,不能有重复的元素。
    4. let arr3=arr1.concat(arr2);
    5. console.log('concat合并后',arr3);
    6. let arr4=[...arr1, ...arr2];
    7. console.log('用扩展运算符合并后',arr4);
    8. // 过滤重复元素
    9. /* Array.from() 方法对一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例 */
    10. let arr5=Array.from(new Set(arr4)); // 方式1
    11. console.log('过滤重复元素后1',arr5);
    12. let arr6=[...new Set(arr4)] // 方式2
    13. console.log('过滤重复元素后2',arr6);
    14. let arr7=arr4.filter((item, index,arr)=>{ // 方式3
    15. // 所有元素只存一次
    16. if(arr.indexOf(item)===index){
    17. return item;
    18. }
    19. })
    20. console.log('过滤重复元素后3',arr7);
    21. let arr8=[]
    22. for(let i=0; ilength;i++){ // 方式4for循环
    23. // 只存第一次遍历到的元素
    24. if(arr8.indexOf(arr4[i])===-1){
    25. arr8.push(arr4[i])
    26. }
    27. }
    28. console.log('过滤重复元素后4',arr8);

    结果: 

    对象合并

    • for(let...in):结果是改变了没有被遍历的对象。
    • ES6扩展运算符(...)
    • ES6的新增API:Object.assign(targetObj,obj1[,obj2,...])

    它们感叹的特点是:如果有属性重复时,后者的属性值被采纳。

    1. /* 对象合并*/
    2. //1、 for(let...in){}
    3. let obj1={
    4. name:'a',
    5. age:12
    6. }
    7. let obj2={
    8. sex:'男',
    9. class:'1',
    10. age:20,
    11. }
    12. for(let key in obj2){
    13. obj1[key]=obj2[key];
    14. }
    15. console.log('对象合并后1', obj1);
    16. let obja={
    17. name:'a',
    18. age:12
    19. }
    20. let objb={
    21. sex:'男',
    22. class:'1',
    23. age:20,
    24. }
    25. //2、 ES6新的APIObject.assgin(obj1, obj2)
    26. let newObj2=Object.assign(obja, objb)
    27. console.log('对象合并后2', newObj2);
    28. //3、ES6的扩展运算符: {...obj1, obj2}
    29. let newObj3={...obja, ...objb};
    30. console.log('对象合并后3', newObj3);

    结果:

     

  • 相关阅读:
    【网络服务&数据库教程】06 Web服务器 - Nginx & 一键安装搭建Wordpress博客系统
    2022最新RTMP+HTTP直播地址汇总(亲测可用)
    记录:微信小程序 数据请求 GET请求和POST请求
    IS200EPSMG1AED 使用Lua创建逻辑脚本或完整程序
    Redis数据类型——list类型介绍及基本操作
    Python接口自动化测试实战(超详细~)
    Java版企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis
    【Linux】Rocky 9.0 Podman服务无法正常启动
    练习:使用servlet显示试卷页面
    数据大瓶解决方案scale
  • 原文地址:https://blog.csdn.net/ilkcyc/article/details/126795996
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号