[英]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.