Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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 如果数组对象中的值相同,则使用逗号分隔的值进行concat_Javascript - Fatal编程技术网

Javascript 如果数组对象中的值相同,则使用逗号分隔的值进行concat

Javascript 如果数组对象中的值相同,则使用逗号分隔的值进行concat,javascript,Javascript,我有一个目标。如果路径相等,我想将名称合并到一个对象中 例如: [ { 姓名:'Gaurav', 路径:'./公共/用户' }, { 姓名:'Saurav', 路径:'./公共/用户' }, { 姓名:'Mohit', 路径:'./公共/测试' } ]您可以使用reduce根据路径对数据进行分组,然后获取对象的值,这将是您的预期输出 const arr=[{name:'Gaurav',path:'./public/user'},{name:'Saurav',path:'./public/us

我有一个目标。如果路径相等,我想将名称合并到一个对象中

例如:

[
{
姓名:'Gaurav',
路径:'./公共/用户'
},
{
姓名:'Saurav',
路径:'./公共/用户'
},
{
姓名:'Mohit',
路径:'./公共/测试'
}

]
您可以使用
reduce
根据路径对数据进行分组,然后获取对象的
值,这将是您的预期输出

const
arr=[{name:'Gaurav',path:'./public/user'},{name:'Saurav',path:'./public/user'},{name:'Mohit',path:'./public/test'}];
结果=Object.values(arr.reduce((a,{name,path})=>{
a[path]?={path};
a[path].name=(a[path].name | |“”).split(“,”).filter(布尔值).concat(名称).join(“,”)
返回a;
},{}));

控制台日志(结果) var a=[ { name:'Gaurav', path:'./public/user' }, { name:'Saurav', path:'./public/user' }, { name:'Mohit', path:'./public/test' } ] var output = []; a.forEach(function(item) { var temp= output.filter(function(v, i) { return v.path == item.path; }); if (temp.length) { var tempIndx= output.indexOf(temp[0]); output[tempIndx].name = output[tempIndx].name+","+item.name; } else { if (typeof item.name == 'string') output.push(item); } }); console.log(output);