当前位置: 首页 > news >正文

合并数组对象object.assign(目标对象,原对象)

合并数组对象,推荐使用object.assign(目标对象,原对象)
object.assign

//旧数据
let arr = [
    {
        name:'tom',
        age:12,
        sex:'女',
        list:[
            {
                title:'西瓜',
                color:'green'
            },
            {
                title:'苹果',
                color:'red'
            },
            {
                title:'香蕉',
                color:'yellow'
            },
        ]
    }
]

//新数组
let arr = [
    {
        name:'tom',
        age:12,
        sex:'女',
        title:'西瓜',
        color:'green'
    },
     {
        name:'tom',
        age:12,
        sex:'女',
         title:'苹果',
         color:'red'
    },
       {
        name:'tom',
        age:12,
        sex:'女',
        title:'香蕉',
         color:'yellow'
    }
]


// 方式1:
// const newArr = []

// arr.forEach(item => {
//   const list = item.list || []
//   list.forEach(innerItem => {
//     newArr.push(Object.assign({},item, innerItem))
//   })
// })

// console.log(newArr)


// 方式2
const newArr = arr.reduce((newArr, item) => {
  const list = item.list || []
  list.forEach(innerItem => newArr.push(Object.assign({},item, innerItem)))
  return newArr
},[])

console.log(newArr)

方法三:

let list=[
     {
       title:'西瓜',
        color:'green'
    },
    {
        title:'苹果',
       color:'red'
    },
    {
        title:'香蕉',
        color:'yellow'
    }
]
let arr = [
    {
        name:'tom',
        age:12,
        sex:'女',
        list:[
            {
                title:'西瓜',
                color:'green'
             },
            {
                title:'苹果',
                color:'red'
            },
            {
                title:'香蕉',
                color:'yellow'
            },
       ]
}
];
let data =[];
for(var i=0;i<list.length;i++){
    data.push( {
        name:'tom',
        age:12,
        sex:'女',
        title:list[i].title,
        color:list[i].color,
        list:[
            {
                title:'西瓜',
                color:'green'
            },
            {
                title:'苹果',
                color:'red'
            },
            {
                title:'香蕉',
                color:'yellow'
            },
        ]
    })

}
console.log(data);

相关文章:

  • vue列表,表格自动滚动
  • mescroll的uni版本, 是在 uni-app 运行的下拉刷新和上拉加载的组件
  • uni-app使用button按钮,设置border:none不起作用
  • js 实现DES加密解密
  • 富文本用js过滤部分标签但保留文本内容代码!
  • uniapp 将 url 地址转化为二维码展示
  • 当JSON.stringify(json)和JSON.parse(json)相互转换报错
  • uni-app实现购物车整套逻辑
  • uni-app实现,预览图片后,保存至相册
  • JS把两个数组对象合并过程解析
  • 时间转换(js将 “2021-07-06T06:23:57.000+00:00” 转换为年月日时分秒)
  • 【uni-app】小程序遇到的坑
  • Ajax原理
  • 使用JavaScript测试字符串中的字母是大写还是小写
  • 【Vue】中三种插槽的使用
  • centos安装java运行环境jdk+tomcat
  • idea + plantuml 画流程图
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Javascript基础之Array数组API
  • Objective-C 中关联引用的概念
  • Python语法速览与机器学习开发环境搭建
  • springboot_database项目介绍
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 记一次用 NodeJs 实现模拟登录的思路
  • 精彩代码 vue.js
  • 前端存储 - localStorage
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 前端之Sass/Scss实战笔记
  • 前言-如何学习区块链
  • 收藏好这篇,别再只说“数据劫持”了
  • 数据结构java版之冒泡排序及优化
  • 微服务入门【系列视频课程】
  • 微信小程序开发问题汇总
  • 小试R空间处理新库sf
  • 学习使用ExpressJS 4.0中的新Router
  • 一道面试题引发的“血案”
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (附源码)springboot教学评价 毕业设计 641310
  • (十)T检验-第一部分
  • (四)Android布局类型(线性布局LinearLayout)
  • (四)Controller接口控制器详解(三)
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)http-server应用
  • (转)Windows2003安全设置/维护
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET关于 跳过SSL中遇到的问题