利用ES6解构赋值处理对象:提取/删除属性、修改键名/重命名、拷贝对象……

本文详细介绍了如何使用ES6的解构赋值对JavaScript对象进行操作,包括提取属性、修改键名、删除属性以及处理多个对象时的注意事项。
摘要由CSDN通过智能技术生成

利用es6解构赋值处理对象(不改变原始对象)

// 原始对象
const obj1 = {
  name: 'CSDN',
  slogan: '专业开发者社区',
  address: '北京市朝阳区酒仙桥路10号恒通商务园B8B二层',
  phone: '010-84770176',
  email: 'fawubu@csdn.net'
}
const obj2 = {
  department: 'CSDN客服',
  phone: '4006600108',
  email: 'kefu@csdn.net'
}

1、提取属性

解构赋值的过程:声明变量 → 在对象内搜索同名属性 → 提取属性值赋给变量

// 提取对象内名为name的属性
let { name } = obj1
console.log(name)  // 'CSDN'
console.log(obj1)  // { name: 'CSDN', slogan: '专业开发者社区', address: '北京市朝阳区酒仙桥路10号恒通商务园B8B二层', phone: '010-84770176', email: 'fawubu@csdn.net' }

2、修改键名(属性重命名)

解构赋值的过程:声明变量(新键名)及原键名 → 在对象内搜索原键名 → 提取属性值赋给变量

// 提取对象内名为slogan的属性,重命名为newSlogan
let { newSlogan:slogan } = obj1
console.log(newSlogan)  // '专业开发者社区'
console.log(obj1)  // { name: 'CSDN', slogan: '专业开发者社区', address: '北京市朝阳区酒仙桥路10号恒通商务园B8B二层', phone: '010-84770176', email: 'fawubu@csdn.net' }

3、删除属性/拷贝对象

解构赋值的过程:声明变量(新对象) → 排除已提取的属性 → 将剩余属性拷贝为新对象

// 删除属性name、slogan,拷贝为新对象newObj
let { name, newSlogan:slogan, ...newObj } = obj1
console.log(name)  // 'CSDN'
console.log(newSlogan)  // '专业开发者社区'
console.log(newObj)  // { address: '北京市朝阳区酒仙桥路10号恒通商务园B8B二层', phone: '010-84770176', email: 'fawubu@csdn.net' }
console.log(obj1)  // { name: 'CSDN', slogan: '专业开发者社区', address: '北京市朝阳区酒仙桥路10号恒通商务园B8B二层', phone: '010-84770176', email: 'fawubu@csdn.net' }

4、处理多个对象/属性

  • 若需声明局部变量 且 提取属性不重名,可使用let(不可重复声明)
let { phone, newEmail:email, ...newObj } = obj1
let { phone, email } = obj2
// × Uncaught SyntaxError: Identifier 'phone' has already been declared.
  • 不考虑作用域冲突 或 提取属性有重名,可使用var(可重复声明)
var { phone, newEmail:email, ...newObj } = obj1
var { phone, email } = obj2
console.log(phone)  // '4006600108'
console.log(email)  // 'kefu@csdn.net'
console.log(newEmail)  // 'fawubu@csdn.net'
console.log(newObj)  // { name: 'CSDN', slogan: '专业开发者社区', address: '北京市朝阳区酒仙桥路10号恒通商务园B8B二层' }
  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值