如何从javascript的两个对象中创建一个对象?

如何从javascript的两个对象中创建一个对象?,javascript,Javascript,我正在处理Javascript应用程序,其中我有一个对象和一个数组对象,我想从这两个对象中创建一个新对象 我有: let test1 = { p1: 50, p2: 0, p3: 1 }; let test2 = [ { code: 'p1', search_key: 'search_p1' } , { code: 'p2', search_key: 'search_p2' } , { code: 'p3', search_key: 'search

我正在处理Javascript应用程序,其中我有一个对象和一个数组对象,我想从这两个对象中创建一个新对象

我有:

let test1 = { p1: 50, p2: 0, p3: 1 };
let test2 = [ { code: 'p1', search_key: 'search_p1' }
            , { code: 'p2', search_key: 'search_p2' }
            , { code: 'p3', search_key: 'search_p3' }
            ];
最终结果将是:

let test3 = {search_p1: 50, search_p2: 0, search_p3: 1};

通过test2进行简单迭代,然后在新对象test3中赋值:

let test1 = {p1: 50, p2: 0, p3: 1};
let test2 = [ {code: 'p1', search_key: 'search_p1'}, {code: 'p2', search_key: 'search_p2'}, {code: 'p3', search_key: 'search_p3'} ];
const test3 = {};

test2.forEach((element) => {
    test3[element.search_key] = test1[element.code];
});
// { search_p1: 50, search_p2: 0, search_p3: 1 }

您可以使用
Array.reduce
从数组中创建新对象。()

在这里,我还使用es6的动态对象键语法以及
对象扩展操作符
()在每次迭代中返回一个新对象,在对象中添加一个新条目,其中键是item的值

search\u键
并且该值是test1[item.code]的值

让test1={p1:50,p2:0,p3:1};
让test2=[{code:'p1',search_key:'search_p1'}
,{code:'p2',search_key:'search_p2'}
,{code:'p3',search_key:'search_p3'}
];
const test3=test2.reduce((acum,item)=>({…acum[item.search\u key]:test1[item.code]}),{})

log(JSON.stringify(test3))
您可以映射数组并为新对象构建一个度量数组

让test1={p1:50,p2:0,p3:1},
test2=[{code:'p1',search_key:'search_p1'},{code:'p2',search_key:'search_p2'},{code:'p3',search_key:'search_p3'}],
result=Object.fromEntries(test2.map({code,search\u key})=>[search\u key,test1[code]]);

控制台日志(结果)到目前为止您尝试了什么?您需要帮助的部分是什么?你被困在哪里?你试了什么?