js
const obj = {
name: '张三',
age: 20,
sex: '男',
name1: '张三1',
};
// 当不需要name1传递时,怎么做呢?
// 方式1
delete obj.name1;
// 方式2
const newObj = {
name: obj.name,
age: obj.age,
sex: obj.sex,
};
// 方式3
const newObj = {
...obj,
name1: undefined,
};
// 其实可以使用一种更优雅的方式
const { name1, ...newObj } = obj;
// 或者使用lodash的omit或者pick方法
const { name1,...newObj } = obj;
```,将 obj 对象中的 name1 属性提取出来,并将剩余的属性值收集到 newObj 对象中。
name1- 是原始对象obj中的一个属性,它将被赋值给一个新的变量name1。...newObj- 是对象扩展运算符,表示将obj对象中除了name1之外的所有属性提取到一个新对象中。
因此,这种方式可以方便地从原始对象中分离出不需要的属性,从而得到一个更简洁、更符合需求的新对象。同时,它也避免了像你提到的方式 1、2、3 那样需要额外的操作,比如使用 delete、创建新对象并逐个赋值,或者使用 undefined 来占位。总的来说,它是一种更直观、更高效的方式来处理对象中的属性。
