Javascript如何按索引合并数组并将其添加为';谁的财产?
我有一个这种格式的数组Javascript如何按索引合并数组并将其添加为';谁的财产?,javascript,jquery,Javascript,Jquery,我有一个这种格式的数组 var users = [{name:"user1"}, {name:"user2"}, {name:"user3"}]; var regular = [{regular:"100"}, {regular:"200"}, {regular:"300"}]; var overtime = [{overtime:"150"}, {overtime:"250"}, {overtime:"300"}]; 我想通过它的索引合并它,并将其添加为用户的属性 这样作为一种输出, use
var users = [{name:"user1"}, {name:"user2"}, {name:"user3"}];
var regular = [{regular:"100"}, {regular:"200"}, {regular:"300"}];
var overtime = [{overtime:"150"}, {overtime:"250"}, {overtime:"300"}];
我想通过它的索引合并它,并将其添加为用户的属性
这样作为一种输出,
users = [
{name:"user1", earnings: [{regular:"100", overtime:"150"}]},
{name:"user2", earnings: [{regular:"200", overtime:"250"}]},
{name:"user3", earnings: [{regular:"300", overtime:"350"}]}
];
我所做的是
$.each(users, function(aa,bb){
/* Merge Regular Amount */
$.each(regular, function(cc,dd){
if(aa == cc)
{
users[aa].earnings = dd; // change to label of earnings
}
});
/* Merge Overtime Amount */
$.each(overtime, function(cc,dd){
if(aa == cc)
{
users[aa].earnings = dd; // change to label of earnings
}
});
});
然而,我只得到了
超时属性
,似乎它被覆盖了,是否有人可以帮助我或指导我获得预期的输出,谢谢,您可以为此使用.map
var users=[{name:“user1”},{name:“user2”},{name:“user3”}];
var regular=[{regular:“100”},{regular:“200”},{regular:“300”}];
var加班=[{加班时间:“150”},{加班时间:“250”},{加班时间:“300”}];
var result=users.map(函数(v,i){
返回{
姓名:v.name,
收入:[{
常规:常规[i]。常规,
加班时间:加班
}]
};
});
控制台日志(结果)代码>您可以使用.map
进行此操作
var users=[{name:“user1”},{name:“user2”},{name:“user3”}];
var regular=[{regular:“100”},{regular:“200”},{regular:“300”}];
var加班=[{加班时间:“150”},{加班时间:“250”},{加班时间:“300”}];
var result=users.map(函数(v,i){
返回{
姓名:v.name,
收入:[{
常规:常规[i]。常规,
加班时间:加班
}]
};
});
控制台日志(结果)代码>请尝试此代码
var users=[{name:“user1”},{name:“user2”},{name:“user3”}];
var收益=[];
var regular=[{regular:“100”},{regular:“200”},{regular:“300”}];
var加班=[{加班时间:“150”},{加班时间:“250”},{加班时间:“300”}];
var finalResult=[];
users.map(函数(v,i){
最后的结果({
姓名:v.name,
收入:{
常规:常规[i]。常规,
加班时间:加班
}
})
});
控制台日志(最终结果)代码>请尝试此代码
var users=[{name:“user1”},{name:“user2”},{name:“user3”}];
var收益=[];
var regular=[{regular:“100”},{regular:“200”},{regular:“300”}];
var加班=[{加班时间:“150”},{加班时间:“250”},{加班时间:“300”}];
var finalResult=[];
users.map(函数(v,i){
最后的结果({
姓名:v.name,
收入:{
常规:常规[i]。常规,
加班时间:加班
}
})
});
控制台日志(最终结果)代码>您可以为收入
收集同一索引中的所有财产
获取第一个给定对象,并将第二个和后续参数的所有属性指定给第一个对象,然后返回该对象(此处不需要)
在第一部分,如果盈利能力不存在,则分配一个对象
Object.assign(users[i].earnings = users[i].earnings || {}, o)
users[i].earnings = users[i].earnings || {} assigns object if not exist
var users=[{name:“user1”},{name:“user2”},{name:“user3”}],
regular=[{regular:“100”},{regular:“200”},{regular:“300”}],
加班=[{加班:“150”},{加班:“250”},{加班:“300”}];
[定期,加班].forEach(a=>
a、 forEach((o,i)=>
分配(用户[i]。收益=用户[i]。收益|{},o));
console.log(用户)代码>
.as console wrapper{max height:100%!important;top:0;}
您可以为收入收集同一索引中的所有属性
获取第一个给定对象,并将第二个和后续参数的所有属性指定给第一个对象,然后返回该对象(此处不需要)
在第一部分,如果盈利能力不存在,则分配一个对象
Object.assign(users[i].earnings = users[i].earnings || {}, o)
users[i].earnings = users[i].earnings || {} assigns object if not exist
var users=[{name:“user1”},{name:“user2”},{name:“user3”}],
regular=[{regular:“100”},{regular:“200”},{regular:“300”}],
加班=[{加班:“150”},{加班:“250”},{加班:“300”}];
[定期,加班].forEach(a=>
a、 forEach((o,i)=>
分配(用户[i]。收益=用户[i]。收益|{},o));
console.log(用户)代码>
.as控制台包装{最大高度:100%!重要;顶部:0;}
最简单的方式:
users = users.map((user, i) => {
user.earnings = [{
...regular[i],
...overtime[i],
}]
})
最简单的方法:
users = users.map((user, i) => {
user.earnings = [{
...regular[i],
...overtime[i],
}]
})
请参阅object.merge或object.create overloads为什么收入
是一个只有一个项目的数组?NinaScholz我的收入应该包含一个用于定期和加班的属性,我做错了吗?哦,忽略收入数组,我忘了删除它,我将收入作为一个新属性添加,请参阅object.merge或object.create overloads为什么收益
是一个只有一个项目的数组?NinaScholz我的收益应该包含一个用于常规和加班的属性,我做错了吗?哦,忽略收益数组,我忘了删除它,我正在将收益作为一个新属性添加,我已经编辑了代码,忽略阵列收益,它起作用了,非常感谢,我没有想到使用它,我需要学习更多快乐来帮助@apelidokoi我编辑了我的代码,忽略阵列收益,它起作用了,非常感谢,我没有想到使用它,我需要学习更多快乐来帮助@apelidokoan你用几句话解释object.assign是如何工作的,分配(用户[i]。收益=用户[i]。收益|{},o));只需要一点解释,谢谢你的帮助,你能用几句话向我解释object.assign的工作原理吗,object.assign(users[i].earnings=users[i].earnings |{},o));只需要一点解释,谢谢你的帮助,