如何从javascript的两个对象中创建一个对象?
我正在处理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
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]]);
控制台日志(结果)代码>到目前为止您尝试了什么?您需要帮助的部分是什么?你被困在哪里?你试了什么?