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));只需要一点解释,谢谢你的帮助,