Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果数组2中的数组项与数组1中的项不匹配,以及与数组3中的concat不匹配,如何删除数组2中的数组项_Javascript_Jquery_Arrays_Angularjs - Fatal编程技术网

Javascript 如果数组2中的数组项与数组1中的项不匹配,以及与数组3中的concat不匹配,如何删除数组2中的数组项

Javascript 如果数组2中的数组项与数组1中的项不匹配,以及与数组3中的concat不匹配,如何删除数组2中的数组项,javascript,jquery,arrays,angularjs,Javascript,Jquery,Arrays,Angularjs,我有两个阵列: project_users = [{ username: "sam", name: "Sampath", email: "xyz" },{ username: "ram", name: "Ram Mohan", email: "asd" },{ username: "shyam", name: "Shyam pandey", email: "wer" }] admin_users = [{ username: "sam", name: "S

我有两个阵列:

project_users = [{
    username: "sam", name: "Sampath", email: "xyz" 
},{
    username: "ram", name: "Ram Mohan", email: "asd" 
},{
    username: "shyam", name: "Shyam pandey", email: "wer" 
}]

admin_users = [{
    username: "sam", name: "Sampath", email: "xyz" 
},{
    username: "pandey", name: "Mangal Pandey", email: "yuy" 
},{
    username: "ameer", name: "Gajini", email: "tyrt" 
},{
    username: "shyam", name: "Shyam pandey", email: "wer" 
}] 
我想创建一个名为project_admin_user的新数组,该数组位于admin users下的project users列表中

预期结果:

project_admin_users = [{
    username: "sam", name: "Sampath", email: "xyz" 
},{
    username: "shyam", name: "Shyam pandey", email: "wer" 
}]
如何在Angular preferred或jQuery中实现这一点?

这里是解决方案:

project_admins=project_users.filter(function(val){ 

  return admin_users.find( function(val2){ 
    return val.username===val2.username 
  });

});
这是纯js ECMAScript 5解决方案,请检查浏览器兼容性-

您可以使用管理员用户阵列;使用以下方法返回在project_users数组中找到的用户:

var project_users=[{用户名:sam,姓名:Sampath,电子邮件:xyz},{用户名:ram,姓名:ram Mohan,电子邮件:asd},{用户名:shyam,姓名:shyam pandey,电子邮件:wer}], admin_users=[{用户名:sam,姓名:Sampath,电子邮件:xyz},{用户名:pandey,姓名:Mangal pandey,电子邮件:yuy},{用户名:ameer,姓名:Gajini,电子邮件:tyrt},{用户名:shyam,姓名:shyam pandey,电子邮件:wer}; var project\u admin\u users=admin\u users.filterfunctionadmin{ 返回项目\u users.findfunctionuser{ 返回JSON.stringifyadmin==JSON.stringifyuser; }; }; console.logproject_admin_用户 请尝试使用此代码

project_users=[{用户名:sam,名称:Sampath,电子邮件:xyz}, {用户名:ram,姓名:ram Mohan,电子邮件:asd}, {用户名:shyam,姓名:shyam pandey,电子邮件:wer}] admin_users=[{用户名:sam,名称:Sampath,电子邮件:xyz}, {用户名:pandey,姓名:Mangal pandey,电子邮件:yuy}, {用户名:ameer,姓名:Gajini,电子邮件:tyrt}, {用户名:shyam,姓名:shyam pandey,电子邮件:wer}] 项目管理用户=[]; admin_用户。forEachfunctionval{ 如果project_users.find functionval2{return val.name==val2.name;}project_admin_users.pushval; }; alertJSON.stringifyproject\u admin\u用户 你可以这样做

Object.prototype.compare=functiono{ var ok=Object.keysthis; 返回类型o==object&&ok.length==object.keyso.length?ok.everyk=>this[k]==o[k]:false; }; Array.prototype.compare=function{ 返回这个.everye,i=>a[i]==对象的类型?a[i]。比较对象:a[i]==e; }; Array.prototype.intersect=function{ 返回this.filterto=>a.someao=>ao.compareto; }; var project_users=[{用户名:sam,名称:Sampath,电子邮件:xyz}, {用户名:ram,姓名:ram Mohan,电子邮件:asd}, {用户名:shyam,姓名:shyam pandey,电子邮件:wer} ], admin_users=[{用户名:sam,名称:Sampath,电子邮件:xyz}, {用户名:pandey,姓名:Mangal pandey,电子邮件:yuy}, {用户名:ameer,姓名:Gajini,电子邮件:tyrt}, {用户名:shyam,姓名:shyam pandey,电子邮件:wer} ]; project\u admins=管理员用户。项目用户;
console.logJSON.stringifyproject_admins,0,4 将project_user和admin_user合并到project_admin_user数组中,并将值传递给removeDuplicate

功能已删除重复项目管理用户{ var destObjects={}; 对于变量i=proj_admin_user.length-1;i>=0;i-{ var item=JSON.stringify[proj_admin_user[i]。用户名,proj_admin_user[i]。名称,proj_admin_user[i]。电子邮件]; 如果要删除对象[项目]{ 项目管理用户1; }否则{ destObjects[项目]=真; } } 返回项目管理员用户; } var proj_admin_user=[{用户名:sam,名称:Sampath,电子邮件:xyz}, {用户名:pandey,姓名:Mangal pandey,电子邮件:yuy}, {用户名:ameer,姓名:Gajini,电子邮件:tyrt}, {用户名:shyam,姓名:shyam pandey,电子邮件:wer}, {用户名:sam,名称:Sampath,电子邮件:xyz}]; var clean=移除的重复项目管理用户;
. 注意:将仅在最新浏览器上工作@sampathredy无问题。祝你好运。注意:array.find存在兼容性问题。使用前检查一下it@MaciejSikora当许多用户具有相同的用户名时,此解决方案不起作用。。检查我的回答是的,如果用户名相同,那么它将不起作用,但是比较像您提供的长字符串会有很差的性能。比较大数据、对象或字符串不是好的解决方案。最好的方法是比较ID字段,但在示例中是无ID字段,所以我选择了最合适的字段-用户名。祝你好运!