合并 2 个对象,其中 Key1 = Key 2 并将 Value1 作为键分配给 Value 2


我有 2 个这样的对象
{
    "2-14": "text-body",
    "3-28": "h1",
    "3-30": "h2",
    "3-36": "color-primary",
    "3-38": "color-secondary",
    "3-40": "color-black-100",
    "3-43": "color-black-50"
}
和
{
    "3-36": "#4992FF",
    "3-38": "#49DEFF",
    "3-40": "#000000",
    "3-43": "#808080"
}
我需要像下面这样合并这两个

{
  "color-primary": "#4992FF",
  "color-secondary": "#49DEFF",
  "color-black-100": "#000000",
  "color-black-50": "#808080",
}

基本上,第一个对象的值将是键,第二个对象的值将成为新对象的值。我需要在键匹配的地方合并。请帮忙。

我试过这种方式来合并两者。但无法按要求获取新对象。

const newArray = {};
for (const key of Object.getOwnPropertyNames(array1)) {
  newArray[key] = array2[key];
}
这给了我

{
    "3-36": "color-primary",
    "3-38": "color-secondary",
    "3-40": "color-black-100",
    "3-43": "color-black-50"
}

let obj1 = {
    "2-14": "text-body",
    "3-28": "h1",
    "3-30": "h2",
    "3-36": "color-primary",
    "3-38": "color-secondary",
    "3-40": "color-black-100",
    "3-43": "color-black-50"
}
 
let obj2 = {
    "3-36": "#4992FF",
    "3-38": "#49DEFF",
    "3-40": "#000000",
    "3-43": "#808080"
}
Object.keys(obj2).reduce((prev,key) => {
  if(obj1[key]){
    prev[obj1[key]] = obj2[key]
  }
  return prev;
},{})

img

var merge = (obj1, obj2) => {
const sameKeys = Object.keys(obj1).filter(e => Object.keys(obj2).includes(e))
return sameKeys.map(e => ({ [obj1[e]]: obj2[e] })).reduce((p, c) => ({ ...p, ...c }), {})
}

img