ES6写法

 data.data.forEach((item,index) => {console.log(item.excerpt.length)let excerpt3 = {excerpt2:''};let newObjif(item.excerpt.length > 120){excerpt3.excerpt2 = item.excerpt.slice(0,120);newObj =  Object.assign(item,excerpt3);// this.DataList[index].excerpt2 = excerpt2;console.log(newObj)this.DataList.push(newObj);}});

如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆盖早先的属性。

Object.assign 方法只会拷贝源对象自身的并且可枚举的属性到目标对象。该方法使用源对象的[[Get]]和目标对象的[[Set]],所以它会调用相关 getter 和 setter。因此,它分配属性,而不仅仅是复制或定义新的属性。如果合并源包含getter,这可能使其不适合将新属性合并到原型中。为了将属性定义(包括其可枚举性)复制到原型,应使用Object.getOwnPropertyDescriptor()Object.defineProperty() 。

String类型和 Symbol 类型的属性都会被拷贝。

在出现错误的情况下,例如,如果属性不可写,会引发TypeError,如果在引发错误之前添加了任何属性,则可以更改target对象。

注意,Object.assign 会跳过那些值为 null 或 undefined 的源对象。

深拷贝问题

针对深拷贝,需要使用其他方法,因为 Object.assign()拷贝的是属性值。假如源对象的属性值是一个指向对象的引用,它也只拷贝那个引用值。

利用新建数组给原数组添加数据

 data.data.forEach((item,index) => {let DataList2 = {excerpt2:''};DataList2 = item;DataList2.excerpt2 =item.excerpt.slice(0,120);this.DataList.push(DataList2);console.log(DataList2)})

给数组里面的对象添加一个新的数据相关推荐

  1. JavaScript中对象数组,如何给对象添加一个新属性

    var a =[{name: 'Tom',age:20},{name: 'Tom2',age:22}] 现在给a数组中的第一个对象添加性别属性 a[0]['gender']='women' a[0][ ...

  2. js给对象添加变量属性 js 更改对象中的属性名 数组对象中每个对象添加一个字段-map用法和forEarch用法

    js给对象添加变量属性 & js 更改对象中的属性名 & 数组对象中每个对象添加一个字段-map用法和forEarch用法 1.js给对象添加变量属性 1.js创建一个对象或者在原有对 ...

  3. vue 中遍历数组对象 存到一个新数组里

    vue 中遍历数组对象 存到一个新数组里(亲测可行!!!) 参考文档 : MDN-解构赋值 方法一 : For of 迭代和解构 var people = [{name: 'Mike Smith',f ...

  4. 数组的迭代数组里面每个对象添加属性值_JS数组和对象循环遍历的几种实现方式...

    数组遍历 1. 普通for循环 let arr = [1,2,3,4,5] for (let i = 0; i < arr.length; i++) {console.log(arr[i]) } ...

  5. [vue] 动态给vue的data添加一个新的属性时会发生什么?怎样解决?

    [vue] 动态给vue的data添加一个新的属性时会发生什么?怎样解决? 如果在实例创建之后添加新的属性到实例上,它不会触发视图更新.如果想要使添加的值做到响应式,应当使用$set()来添加对象. ...

  6. 为Array对象添加一个去除重复项的方法

    输入例子: [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN].uniq() 输出例子: [false, true, un ...

  7. 为 Array 对象添加一个去除重复项

    为 Array 对象添加一个去除重复项的方法 方法一: Array.prototype.uniq = function () {var arr= [];var flag=true;this.forEa ...

  8. 向Hadoop集群添加一个新的节点

    如何向向Hadoop集群添加一个新的节点? 1.在新节点安装好hadoop或者从其他节点复制一份 2.把namenode的有关配置文件复制到该节点 3.修改masters和slaves文件,增加该节点 ...

  9. java:合并两个排序的整数数组A和B变成一个新的数组。新数组也要有序。

    合并两个排序的整数数组A和B变成一个新的数组.新数组也要有序. 样例 1:输入: A=[1], B=[1]输出:[1,1]样例解释: 返回合并后的数组.样例 2:输入: A=[1,2,3,4], B= ...

最新文章

  1. CF888G Xor-MST (01字典树+MST)
  2. “云+大数据”时代 中端存储如何选择
  3. leetcode235. 二叉搜索树的最近公共祖先
  4. C++命名空间的玩法
  5. 计算一个文件下的所有视频总时长
  6. 董承非: 如何从各种类型的错误中学习
  7. Android 如何获取系统签名 并使用系统签名
  8. DEM数据获取方法与采样基础理论
  9. 项目管理助力中国企业发展
  10. Java计算机毕业设计大学生企业推荐系统源码+系统+数据库+lw文档
  11. wincc工程组态论文_2020/12/18【推荐】几种常用工控组态软件介绍,这次找齐了,你懂哪种?...
  12. 微服务架构下的统一身份认证和授权
  13. iphone页面怎么实现固定工具栏 html css js,固定工具栏 data-position=fixed
  14. 【金融财经】金融市场一周简报(2017-09-01)
  15. 机器学习实战读书笔记-朴素贝叶斯
  16. 传奇中添加NPC及功能脚本
  17. PS抠章、去水印-你懂得
  18. [CDQ分治与整体二分]个人对CDQ分治与整体二分的理解
  19. 弹性盒子(弹性布局)
  20. 当六月的雨,带了些许思念的时候,记忆的扉页,被忧伤一一翻阅

热门文章

  1. LeetCode-字符串-反转字符串中的单词 II
  2. mysql中与null值不能比较
  3. sublime插件开发教程(附源码)
  4. How web servers work?
  5. 全链路监控方案概述与比较
  6. RPC调用框架比较分析--转载
  7. 分布式ActiveMQ集群--转载
  8. mysql 存储过程项目小结
  9. ibatis插入正确但查询不出数据的问题
  10. 最好的编程名言,大家一起来共勉----转载