Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的对象映射_Javascript_Underscore.js_Lodash - Fatal编程技术网

javascript中的对象映射

javascript中的对象映射,javascript,underscore.js,lodash,Javascript,Underscore.js,Lodash,基于键的数组,是否有办法将一个对象映射到另一个对象 var obj1 = { 'firstName': 'Tom', 'lastName': 'Hardy', 'age': 32 }; var obj2 = { 'firstName': 'Jon', 'lastName': 'Snow', 'age': 33 }; keys = ['lastName', 'age']; 我想用obj2的值更新obj1的lastName和age的值 是否有任何lodash函数可用于此类型的映射?对于纯Javas

基于键的
数组
,是否有办法将一个
对象
映射到另一个
对象

var obj1 = { 'firstName': 'Tom', 'lastName': 'Hardy', 'age': 32 };
var obj2 = { 'firstName': 'Jon', 'lastName': 'Snow', 'age': 33 };
keys = ['lastName', 'age'];
我想用
obj2
的值更新
obj1
lastName
age
的值


是否有任何
lodash
函数可用于此类型的映射?

对于纯Javascript,您可以使用函数迭代键,并使用
[]
符号根据其他变量的值访问属性

var obj1={'firstName':'Tom','lastName':'Hardy','age':32};
var obj2={'firstName':'Jon','lastName':'Snow','age':33};
var key=['lastName','age'];
keys.forEach(prop=>obj1[prop]=obj2[prop]);
控制台日志(obj1)您可以使用和来实现此结果

_.assign(obj1, _.pick(obj2, keys));
var obj1={'firstName':'Tom','lastName':'Hardy','age':32};
var obj2={'firstName':'Jon','lastName':'Snow','age':33};
var key=['lastName','age'];
_.分配(obj1,拾取(obj2,关键点));
控制台日志(obj1)
.as控制台包装{最小高度:100%;顶部:0;}

是否有任何lodash/underline.js映射器可用于此类型的映射
lodash
只是一个库,它还具有一个函数,您可以使用该函数执行以下操作:same@URoy-当纯JS只有46个字符时,为什么还要麻烦使用Lodash或下划线?(甚至可以用
p
而不是
prop
来表示<40)@nnnnnnnn我不喜欢一个字符变量:)有意义的变量名是好的,但在这样一个小箭头函数中,
p
的意思是非常明显的——但如果他们寻求最大的简洁性,这个建议只是为了OP。关于你的Lodash建议,我认为OP正在寻找一个假设的
.mapProperties()。