Javascript 合并来自两个不同类型数组的对象
想象一下,我们有两个数组。包含不同类型对象的每个对象。例如:Javascript 合并来自两个不同类型数组的对象,javascript,arrays,typescript,lodash,Javascript,Arrays,Typescript,Lodash,想象一下,我们有两个数组。包含不同类型对象的每个对象。例如: let first: Foo[] = [ { a: 12, b: 'x', c: 0 }, { a: 43, b: 'y', c: 0 } ]; let second: number[] = [11, 15]; 我希望合并他们的对象,最终得到一个数组,如下所示: let first: Foo[] = [ { a: 12, b: 'x', c: 11 }, { a: 43, b: 'y', c: 15
let first: Foo[] = [
{ a: 12, b: 'x', c: 0 },
{ a: 43, b: 'y', c: 0 }
];
let second: number[] = [11, 15];
我希望合并他们的对象,最终得到一个数组,如下所示:
let first: Foo[] = [
{ a: 12, b: 'x', c: 11 },
{ a: 43, b: 'y', c: 15 }
];
如您所见,我只想将第二个数组中的值赋给第一个数组中对象的c
属性
我希望你能理解我对这个问题的解释。我相信你们的技术,伙计们 我认为你应该这样做。。。 也许不是最好的,但在你的情况下应该有用:) 这很简单
for(var i in second){
var elem = second[i];
first[i]['c'] = elem;
}
您可以
zip
将两个数组合并为一个
const first: Foo[] = [
{ a: 12, b: 'x', c: 0 },
{ a: 43, b: 'y', c: 0 }
];
const second: number[] = [11, 15];
const result: Foo[] = first.map((e, i) => {
return <Foo>Object.assign({}, e, { c: second[i] });
});
const-first:Foo[]=[
{a:12,b'x',c:0},
{a:43,b'y',c:0}
];
常数秒:数字[]=[11,15];
常量结果:Foo[]=first.map((e,i)=>{
返回Object.assign({},e,{c:second[i]});
});
通常,Array.prototype.reduce
为类似这样的方法提供了良好的基础,例如这一方法
var listOfItems=[
{a:12,b'x',c:0},
{a:43,b'y',c:0}
];
var listOfValues=[11,15];
函数重新分配给IVENKEY(收集器、项目、idx){
item=Object.assign({},item);//不要改变原始引用。
项[collector.key]=collector.valueList[idx];//重新分配值。
collector.itemList.push(item);//分别收集处理过的项目。
回程收集器;
}
var结果=listOfItems.reduce(将值重新分配给IVENKEY{
键:“c”,
valueList:listOfValues,
项目列表:[]
}).项目清单;
log('listOfItems:',listOfItems);
log('result:',result)代码>
.as console wrapper{max height:100%!important;top:0;}
您尝试过什么吗?是我还是这个问题至少每小时发布两次?@sjahan请提供至少一份副本,我将不胜感激。为什么会有这么多反对票?我想你会看到我的问题重复了,但为什么不链接到类似的线程呢?当然,这个解决方案很简单而且有效。但是如果下一次需要压缩到b
或a
或某个键,因为它在运行时是通用的,所以不知道该怎么办?