3
关注
1704
浏览

比较2个阵列值推只有第一个结果

为什么被折叠? 0 个回复被折叠
demon_cry 未验证用户 用户来自于: 广东省
2020-09-17 00:47

问题依赖于这一行:

r[o.manager_id] = r[o.employees_id] || []; 

你应该记住,在你的阵列的一些对象具有manager_id和其他一些不,他们有employees_id而不是,所以你必须首先用这条线来评估:

var itemId = o.manager_id || o.employees_id; 

试试这个代码:

var res = obj1.concat(obj2).reduce(function(r, o) { 
    var itemId = o.manager_id || o.employees_id; 
    r[itemId] = r[itemId] || []; 
    r[itemId].push(o); 


    return r; 
}, {}); 
JasonLaravel 未验证用户 用户来自于: 广东省
2020-09-15 23:11

r[o.manager_id] = r[o.employees_id] || [];在此声明,如果管理者没有一个EMPLOYEE_ID的阵列是该ID复位。

一种方式这样做是正确的是:

var res = obj1.concat(obj2).reduce(function(r, o) { 
    var id; 
    if(o.hasOwnProperty('manager_id')) { 
    id = o['manager_id']; 
    } 
    else { 
    id = o['employees_id']; 
    } 

    r[id] = r[id] || []; 
    r[id].push(o); 

    return r; 
}, {}); 

关于作者

问题动态

发布时间
2020-09-15 15:51
更新时间
2022-09-15 16:04
关注人数
3 人关注
个人工作笔记 Powered BY WeCenter V4.1.0 © 2024 粤ICP备2020123311号