繁体   English   中英

如果数组对象中的值相同,则用逗号分隔值连接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM