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

js对象数组浅复制且赋新值的几种方法

js对象数组浅复制且赋新值的几种方法

const a1 = [{a:'a'}, {b:'b'}];// 示例1:使用扩展运算符复制对象并添加新属性
const a2 = a1.map((item, index) => ({...item,               // 复制原对象属性id: index,             // 新增id属性timestamp: Date.now()  // 新增时间戳属性
}));// 示例2:使用Object.assign复制并覆盖原有属性(如有)
const a3 = a1.map((item, index) => Object.assign({},                    // 目标空对象item,                  // 复制原对象属性{ index: index + 1,    // 新增index属性(值为索引+1)active: true         // 新增active属性}
));// 示例3:条件性添加属性(根据原对象内容判断)
const a4 = a1.map(item => {// 复制原对象const newItem = { ...item };// 根据原对象属性添加新值if (newItem.a) {newItem.a = newItem.a.toUpperCase(); // 转换为大写newItem.type = 'A类';} else if (newItem.b) {newItem.b = newItem.b.repeat(2);     // 重复字符串newItem.type = 'B类';}return newItem;
});// 示例4:添加嵌套属性(不影响原对象的嵌套结构)
const a5 = a1.map((item, index) => ({...item,meta: {                // 新增嵌套对象position: index,source: 'original'}
}));// 输出结果验证(原数组a1保持不变)
console.log('原数组a1:', JSON.stringify(a1));
console.log('示例1 a2:', JSON.stringify(a2));
console.log('示例2 a3:', JSON.stringify(a3));
console.log('示例3 a4:', JSON.stringify(a4));
console.log('示例4 a5:', JSON.stringify(a5));

 

http://www.sczhlp.com/news/6008/

相关文章:

  • 【JVM】类加载器双亲委派
  • 后量子密码学的未来准备
  • 跨链原子交换实现:原理与Solidity研发指南
  • AD7616的代替兼容芯片LHA6916
  • LHA6958D是一款代替AD7606的芯片
  • VirtualBox安装银河麒麟后,鼠标滚轮无效解决
  • swapon 失败: 无效的参数 的解决方法
  • 基于Java+Springboot+Vue开发的酒店客房预订管理系统源码+运行步骤
  • [Luogu 1820] 麻将 加强加强版
  • 数据库远程备份,跨服务器备份
  • 您来了
  • idea中打开多文件编辑器换行展示
  • 容斥
  • 从销售到交付,如何实现全流程数字化管控?
  • 6.打印爱心 - hml
  • 企查查开源弹窗组件库“QuickDialog” 为鸿蒙应用开发复杂弹窗提供更优解
  • 2025最新版Navicat 17下载+安装+激活全流程图解,保姆级教程
  • PG不同版本安装uuid-ossp - Cetus
  • 详细介绍:【Leetcode】2106. 摘水果
  • AOSP 编译后产生的 img 总结
  • 2025年Apifox和Apipost全功能对比,到底哪个好?
  • Java核心类——6.使用TreeMap
  • 如何给网站添加 https
  • vs2022启动慢需要半分多种问题的解决
  • Windows 用户为 Neurodesk 配置 CVMFS 失败可能遇到的问题及解决方案
  • 利用ruoyi框架开发自己的后台管理系统日志(8.5)
  • AI概念解析:从入门到精通的43个关键术语指南
  • 查找占用空间最大的目录
  • locals()和globals()如何控制Python变量的范围
  • SpringBoot项目拆分构建jar包,减少更新体积 - Commissar