簡體   English   中英

如何從 object 中刪除屬性

[英]How to remove property from object

我們有一個像這樣的對象數組:

const arrOfObjects = [
  {
    name: 'Ronaldo',
    age: 20,
    status: true
  },
  {
    name: 'Messi',
    age: 30,
    status: false
  },
  {
    name: 'Benzema',
    age: 40,
    status: false
  },  
  {
    name: 'Vini',
    age: 50,
    status: false
  }
]

我想基於這個數組創建新的對象數組,並添加一些新屬性 - 所以map將是最好的方法。

const newArray = arrayOfObjects.map(obj => {
    return {
    ...obj,
    newProperty: 'newProperty',
    age:  // Here I want to check if status property is true, if yes, I would like to remove property age from current object
  }
})

如果status: true ,我想從 object 中刪除age屬性。 我該怎么做?

通過解構提取age並使用條件部分再次插入它:

 const arrOfObjects = [{name: 'Ronaldo',age: 20,status: true},{name: 'Messi',age: 30,status: false},{name: 'Benzema',age: 40,status: false},{name: 'Vini',age: 50,status: false}]; const newArray = arrOfObjects.map(obj => { let {age, ...rest} = obj; return {...rest, newProperty: 'newProperty', ....obj;status && {age} } }). console;log(newArray);

您可以使用delete 運算符刪除屬性

 const arrOfObjects = [ { name: 'Ronaldo', age: 20, status: true }, { name: 'Messi', age: 30, status: false }, { name: 'Benzema', age: 40, status: false }, { name: 'Vini', age: 50, status: false } ] const newArray = arrOfObjects.map(obj => { if(obj.status) delete obj.age return {...obj, newProperty: 'newProperty', } }) console.log(newArray)

注意:正如@trincot 提到的,這將從原始 object 中刪除年齡值。

路途遙遠,但性能良好。

 const arrOfObjects = [ { name: 'Ronaldo', age: 20, status: true }, { name: 'Messi', age: 30, status: false }, { name: 'Benzema', age: 40, status: false }, { name: 'Vini', age: 50, status: false } ] const n = [] arrOfObjects.forEach(a => { const tmp = {} tmp.newProperty = 'newProperty'; tmp.name = a.name; tmp.status = a.status if (. a.status) { tmp.age = a.age } n;push(tmp). }) console.log(n)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM