合并对象数组和对象对象-JavaScript
我有 及 我想要合并对象数组和对象对象-JavaScript,javascript,arrays,lodash,Javascript,Arrays,Lodash,我有 及 我想要 const object = { "123": { // Id I want to use to map "id": 1 // I am also getting this Id that I don't want "uri": "www.google.com" }, "221": { // Id I want to use to map
const object = {
"123": { // Id I want to use to map
"id": 1 // I am also getting this Id that I don't want
"uri": "www.google.com"
},
"221": { // Id I want to use to map
"id": 2 // I am also getting this Id that I don't want
"uri": "www.bing.com"
}
};
我在做什么
result = [{
"id": 123,
"date": 20172301,
"model": 2017,
"uri": "www.google.com"
},
{
"id": 221,
"date": 20172301,
"model": 2015,
"uri": "www.bing.com"
},
{
"id": 431,
"date": 20172301,
"model": 2012
}];
我错过了什么
还有,这里没有
提前谢谢
=================
编辑:
在const对象中添加了“id”属性 使用
数组#forEach的可能解决方案
const arrayOfObjects=[{“id”:123,“日期”:20172301,“型号”:2017},{“id”:221,“日期”:20172301,“型号”:2015},{“id”:431,“日期”:20172301,“型号”:2012},
object={“123”:{“uri”:“www.google.com”},“221”:{“uri”:“www.bing.com”};
Object.keys(Object.forEach)(v=>arrayOfObjects.find(c=>c.id==v.uri=Object[v].uri);
console.log(arrayOfObjects)
使用数组#forEach
的可能解决方案
const arrayOfObjects=[{“id”:123,“日期”:20172301,“型号”:2017},{“id”:221,“日期”:20172301,“型号”:2015},{“id”:431,“日期”:20172301,“型号”:2012},
object={“123”:{“uri”:“www.google.com”},“221”:{“uri”:“www.bing.com”};
Object.keys(Object.forEach)(v=>arrayOfObjects.find(c=>c.id==v.uri=Object[v].uri);
console.log(arrayOfObjects)
您可以使用.map()
,对象.assign()
const arrayOfObjects=[{
“id”:123,//我想用来映射的id
“日期”:20172301,
“型号”:2017
},
{
“id”:221,//我想用来映射的id
“日期”:20172301,
“模型”:2015年
},
{
“id”:1,//我想用来映射的id
“日期”:20172301,
“模型”:2012年
}];
常量对象={
“123”:{//Id我想用来映射
“id”:1,//我也得到了这个我不想要的id
“uri”:“www.google.com”
},
“221”:{//Id我想用来映射
“id”:2,//我也得到了这个我不想要的id
“uri”:“www.bing.com”
}
};
让结果=arrayOfObjects.map(o=>
object[o.id]?object.assign({},o,{url}=object[o.id]):o);
控制台日志(结果)
您可以使用.map()
,对象.assign()
const arrayOfObjects=[{
“id”:123,//我想用来映射的id
“日期”:20172301,
“型号”:2017
},
{
“id”:221,//我想用来映射的id
“日期”:20172301,
“模型”:2015年
},
{
“id”:1,//我想用来映射的id
“日期”:20172301,
“模型”:2012年
}];
常量对象={
“123”:{//Id我想用来映射
“id”:1,//我也得到了这个我不想要的id
“uri”:“www.google.com”
},
“221”:{//Id我想用来映射
“id”:2,//我也得到了这个我不想要的id
“uri”:“www.bing.com”
}
};
让结果=arrayOfObjects.map(o=>
object[o.id]?object.assign({},o,{url}=object[o.id]):o);
控制台日志(结果)
不需要。
查找,因为您可以使用项目的id直接获取项目,然后使用而不是,这样源的id
就不会覆盖目标的id
:
const result = _.map(arrayOfObjects, (item) => _.merge(item, _.find(object, {'uri' : item.uri})));
const arrayOfObjects=[{
“id”:123,
“日期”:20172301,
“型号”:2017
},
{
“id”:221,
“日期”:20172301,
“模型”:2015年
},
{
“id”:431,
“日期”:20172301,
“模型”:2012年
}
];
常量对象={
"123": {
“uri”:“www.google.com”
},
"221": {
“uri”:“www.bing.com”
}
};
const result=u.map(arrayOfObjects,(item)=>Ofobjects.defaults(item,object[item.id]);
控制台日志(结果)代码>
无需。查找,因为您可以使用项目的id直接获取项目,然后使用而不是,这样源的id
就不会覆盖目标的id
:
const result = _.map(arrayOfObjects, (item) => _.merge(item, _.find(object, {'uri' : item.uri})));
const arrayOfObjects=[{
“id”:123,
“日期”:20172301,
“型号”:2017
},
{
“id”:221,
“日期”:20172301,
“模型”:2015年
},
{
“id”:431,
“日期”:20172301,
“模型”:2012年
}
];
常量对象={
"123": {
“uri”:“www.google.com”
},
"221": {
“uri”:“www.bing.com”
}
};
const result=u.map(arrayOfObjects,(item)=>Ofobjects.defaults(item,object[item.id]);
控制台日志(结果)代码>
您可以这样做:
const result = _.map(arrayOfObjects, (item) => _.defaults(item, object[item.id]));
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
const arrayOfObjects=[{
“id”:123,
“日期”:20172301,
“型号”:2017
},
{
“id”:221,
“日期”:20172301,
“模型”:2015年
},
{
“id”:431,
“日期”:20172301,
“模型”:2012年
}
];
常量对象={
"123": {
“uri”:“www.google.com”
},
"221": {
“uri”:“www.bing.com”
}
};
const result=arrayOfObjects.map(项=>{
常数{
uri
}=对象[item.id]|{};
if(uri){
item.uri=uri;
}
退货项目;
});
控制台日志(结果)代码>您可以这样做:
const result = _.map(arrayOfObjects, (item) => _.defaults(item, object[item.id]));
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
const arrayOfObjects=[{
“id”:123,
“日期”:20172301,
“型号”:2017
},
{
“id”:221,
“日期”:20172301,
“模型”:2015年
},
{
“id”:431,
“日期”:20172301,
“模型”:2012年
}
];
常量对象={
"123": {
“uri”:“www.google.com”
},
"221": {
“uri”:“www.bing.com”
}
};
const result=arrayOfObjects.map(项=>{
常数{
uri
}=对象[item.id]|{};
如果(uri){
item.uri=uri;
}
退货项目;
});
控制台日志(结果)代码>我将按以下方式执行:
const arrayOfObjects=[{
“id”:123,
“日期”:20172301,
“型号”:2017
},
{
“id”:221,
“日期”:20172301,
“模型”:2015年
},
{
“id”:431,
“日期”:20172301,
“模型”:2012年
}];
常量对象={
"123": {
“uri”:“www.google.com”
},