复制对象中的一部分属性给另一个对象(对象部分属性解构到新对象)

复制对象中的一部分属性给另一个对象(对象部分属性解构到新对象)

点击查看代码
const obj = {
  a: 1,
  b: 2,
  c: 3,
};

//第1种,全部赋值
const new_obj={}
for(let key in obj) {
    new_obj[key] = obj[key]
}
console.log(new_obj);  { a:1, b:2, c:3 }

//第2种,正常取值法
const new_obj = {
 a1: obj.a,
  b: obj.b,
};
console.log(new_obj);  { a1:1, b:2 }

//第3种,利用匿名方法以及 ES6 解构赋值(自执行函数)
const new_obj = (  ({  a, b }) => ({ a1:a, b })  )(obj);
console.log(new_obj);  { a1:1, b:2 }

//第4种,利用 ES6 解构赋值
const { a, b } = obj;
const new_obj = { a1:a, b };
console.log(new_obj);  { a1:1, b:2 }

//第5种,利用 JSON.stringify 第二个参数取值
const new_obj = JSON.parse(JSON.stringify(obj, ["a", "b"]));
console.log(new_obj);  { a:1, b:2 }

//第6种,利用 ES6 解构剔除无用对象
const { c, ...new_obj } = obj;
console.log(new_obj);  { a:1, b:2 }

//第7种,reduce函数
const new_obj = ['a', 'b'].reduce((total, val) => (val in obj && (total[val] = obj[val]), total), {});
console.log(new_obj);  { a:1, b:2 }

posted on 2023-06-21 18:48  springsnow  阅读(185)  评论(0编辑  收藏  举报

导航