[英]concat with comma seperated values if value is same in array objects
我有一台 object。 如果路径相等,我想在一个 object 中连接名称。
例如:
[ { name:'Gaurav', path:'./public/user' }, { name:'Saurav', path:'./public/user' }, { name:'Mohit', path:'./public/test' } ]
所需的 output:
[ { name:'Gaurav,Saurav', path:'./public/user' }, { name:'Mohit', path:'./public/test' } ]
您可以使用reduce
根据路径对数据进行分组,然后获取Object.values
的Object.values,这将是您预期的output。
const arr = [ { name:'Gaurav', path:'./public/user'}, {name:'Saurav',path:'./public/user'},{name:'Mohit',path:'./public/test'}]; result = Object.values(arr.reduce((a,{name, path})=>{ a[path]??= {path}; a[path].name = (a[path].name || "").split(",").filter(Boolean).concat(name).join(",") return a; },{})); console.log(result);
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.