[英]Delete a property from JavaScript object without using delete operator
我需要从对象中提取某些属性并分配给新对象。 以传统方式,我可以手动将对象属性所需的内容分配给新对象的属性。
目前我在原始对象上使用删除运算符并创建一个新对象。
有没有更好的方法来做到这一点。
您可以分解对象并选择不需要的对象,然后将其余部分作为结果对象。
它用
{ [key]:_, ...result } = object; ^^^^^
解构分配与
{ [key]:_, ...result } = object; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
分配给新的变量名 (不再使用)和
{ [key]:_, ...result } = object; ^
{ [key]:_, ...result } = object; ^^^
var object = { a: 1, b: 2, c: 3 }, key = 'a', { [key]:_, ...result } = object; console.log(result);
使用ES6解构运算符,您可以
ler arr = [{id:1, name: foo}, {id:2, name: bar}]
arr.map({id, ...item} => {
return item
})
考虑您要删除id属性,以上代码将删除id属性并返回包含name属性的对象。
您必须通过复制旧属性中的所有属性来创建新对象,但要删除的属性除外:
const person = {
name: 'abc',
age: 25
};
console.log(person);
const age = 'age';
const newPerson = Object.keys(person).reduce((object, key) => {
if (key !== age) {
object[key] = person[key]
}
return object
}, {});
console.log(newPerson);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.