Javascript 从对象拼接属性?

Javascript 从对象拼接属性?,javascript,object,Javascript,Object,是否有一个实用程序(jquery、lodash等)将属性从一个对象提取到另一个对象,然后从原始对象中删除它们?类似于阵列的拼接 obj1 = {color:"red", age:"23", name:"cindy"} obj2 = extract(obj1, ["color","name"]) 结果: obj1 is { age:23 } obj2 is {color:"red", name:"cindy"} 您可以为它使用一个函数,该函数迭代键并返回一个新的objectc,并从源对象中删除

是否有一个实用程序(jquery、lodash等)将属性从一个对象提取到另一个对象,然后从原始对象中删除它们?类似于阵列的拼接

obj1 = {color:"red", age:"23", name:"cindy"}
obj2 = extract(obj1, ["color","name"])
结果:

obj1 is { age:23 }
obj2 is {color:"red", name:"cindy"}

您可以为它使用一个函数,该函数迭代键并返回一个新的objectc,并从源对象中删除键

函数提取(对象、键){
返回键。减少(功能(o,k){
o[k]=对象[k];
删除对象[k];
返回o;
}, {});
}
var obj1={color:“red”,age:“23”,name:“cindy”},
obj2=提取(obj1,[“颜色”,“名称]);
控制台日志(obj1);

console.log(obj2)以下是自定义
提取
函数的定义方式:

函数提取(o,键){
var newObj={};
键。forEach(函数(k){
if(o.hasOwnProperty(k)){//检查'source'对象中是否存在键
newObj[k]=o[k];
删除o[k];//从'source'对象中删除属性
}
});
返回newObj;
}
var obj1={color:“red”,age:“23”,name:“cindy”},
obj2=提取(obj1,[“颜色”,“名称]);
控制台日志(obj1);

console.log(obj2)另一种方法是使用下划线的u.object()方法创建快速自定义
提取
fn:

function extract(properties, object) {
  return _.object(properties, properties.map(prop => object[prop]));
}