我有 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;
},{})
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 }), {})
}