给数组里面的对象添加一个新的数据
生活随笔
收集整理的這篇文章主要介紹了
给数组里面的对象添加一个新的数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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)})?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的给数组里面的对象添加一个新的数据的全部內容,希望文章能夠幫你解決所遇到的問題。