Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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 在JS(es6)中将对象映射到一起_Javascript_Object_Ecmascript 6_Mapping - Fatal编程技术网

Javascript 在JS(es6)中将对象映射到一起

Javascript 在JS(es6)中将对象映射到一起,javascript,object,ecmascript-6,mapping,Javascript,Object,Ecmascript 6,Mapping,我在JS中有两个对象: positions: { top: { top: 10, left: 10 }, bottom: { top: 10, left: 10 }, left: { top: 10, left: 10 }, right: { top: 10, left: 10 }, }, positionAdjustments: { top: { top: 0, left: 0 }, bottom: { top: 5, left: 5 }, left: { top

我在JS中有两个对象:

positions: {
  top: { top: 10, left: 10 },
  bottom: { top: 10, left: 10 },
  left: { top: 10, left: 10 },
  right: { top: 10, left: 10 },
},

positionAdjustments: {
  top: { top: 0, left: 0 },
  bottom: { top: 5, left: 5 },
  left: { top: 0, left: 0 },
  right: { top: 0, left: 0 },
},
我想将它们结合起来,以产生例如:-

positions: {
  top: { top: 10, left: 10 },
  bottom: { top: 15, left: 15 },
  left: { top: 10, left: 10 },
  right: { top: 10, left: 10 },
},
有没有一种lodash方法或某种优雅的方法可以在不编写递归映射函数的情况下实现这一点?例如:

位置。深度组合值(位置调整)


如果您不想使用
lodash
,并且在
top
left
对象中只有
top
left
键,则可以使用此选项。可能会改进此方法Y更多

您可以迭代关键帧和所需属性,并调整位置

var object={positions:{top:{top:10,left:10},bottom:{top:10,left:10},left:{top:10,left:10},right:{top:10,left:10},positionAdjustments:{top:{top:0,left:0},bottom top:5,left:5},left:{top:0,left:0},right:{top:0,left:0};
Object.key(Object.positions).forEach(函数(k){
['top','left'].forEach(函数(l){
object.positions[k][l]+=(object.positions调整[k]|{}[l]| | 0;
});
})
控制台日志(对象位置)

。作为控制台包装{max height:100%!important;top:0;}
为什么最后一个
0
?可能是typo@ozilsry是个打字错误@ManuelCheța也谢谢!也谢谢!我希望lodash能够为这类事情提供内置功能(将对象中的键控值添加到一起),但我认为没有,我猜它太具体了
 keys = Object.keys(positions)
 const result = keys.map(key => (
   {
     top: positions[key].top + positionsAdjustments[key].top,
     left: positions[key].left + positionsAdjustments[key].left,
   }
 ));