Javascript 如何使用键值从两个对象创建第三个对象

Javascript 如何使用键值从两个对象创建第三个对象,javascript,algorithm,sorting,object,Javascript,Algorithm,Sorting,Object,目标1: {positive: ['happy', 'excited', 'joyful'], negative: ['depressed', 'sad', 'unhappy']} 目标2: {happy: 6, excited: 1, unhappy: 3} 我想要什么- 结果: 我如何做到这一点 我使用了下面的方法来获得对象2所属的类别,但我不确定如何随着这些对象的大小的增长动态创建第三个对象由于eslint airbnb规则,我无法用于…of或…in function getK

目标1:

{positive: ['happy', 'excited', 'joyful'], negative: ['depressed', 'sad', 'unhappy']}
目标2:

{happy: 6, excited: 1, unhappy: 3}
我想要什么- 结果:

我如何做到这一点

我使用了下面的方法来获得对象2所属的类别,但我不确定如何随着这些对象的大小的增长动态创建第三个对象由于eslint airbnb规则,我无法用于…of或…in

    function getKeyByValue(value) {
        return Object.keys(object).find((key) => object[key] === value);
    }
这可以使用over来创建新对象。对于每个条目,如
[key,feelations]
,我们使用嵌套的
reduce
计算总和:对于
feelations
中的每个
feeling
,我们使用
object2
中的值(如果存在),或者
0
,否则使用(
object2[feeling]| 0
),如下:

let result = Object.entries(object1).reduce((result, [key, feelings]) => {
  result[key] = feelings.reduce((sum, feeling) => sum + (object2[feeling] || 0), 0);
  return result;
}, {});
演示:

let object1={正面:[“快乐”、“兴奋”、“快乐”],反面:[“沮丧”、“悲伤”、“不快乐”];
让object2={快乐:6,兴奋:1,不快乐:3};
让result=Object.entries(object1.reduce)(result[key,feelations])=>{
结果[键]=感觉。减少((总和,感觉)=>总和+(对象2[感觉]| | 0),0);
返回结果;
}, {});
控制台日志(结果)例如,您可以使用:

obj1={积极的:['happy'、'excited'、'joying'],消极的:['depression'、'sad'、'unhappy']}
obj2={快乐:6,兴奋:1,不快乐:3}
常量结果={}
for(对象的let键。键(obj1)){
结果[键]=obj1[键]。减少(
(acc,value)=>{return acc+(obj2[value]| | 0)},0)
}

console.log(result)
从循环开始。这是家庭作业吗?如果是这样的话,您尝试过什么?我尝试过按值获取key以查找对象2所属的类别,但我想知道如何动态创建第三个对象。我尝试过类似的方法,但airbnb eslint抱怨由于for of/for in循环,所以我尝试找出不同的方法
let result = Object.entries(object1).reduce((result, [key, feelings]) => {
  result[key] = feelings.reduce((sum, feeling) => sum + (object2[feeling] || 0), 0);
  return result;
}, {});