Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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 将具有相同名称的对象联接到一个项中_Javascript_Node.js - Fatal编程技术网

Javascript 将具有相同名称的对象联接到一个项中

Javascript 将具有相同名称的对象联接到一个项中,javascript,node.js,Javascript,Node.js,我想把同名的对象合并到一个项目数组中,但我不知道怎么做 我有这样一个数组: [ { name: 'core/core.js', item: [ [Object] ] }, { name: 'users/admin.js', item: [ [Object] ] }, { name: 'users/admin.js', item: [ [Object] ] } ] 我想要类似的东西: [ { name: 'core/core.

我想把同名的对象合并到一个项目数组中,但我不知道怎么做

我有这样一个数组:

  [ 
   { name: 'core/core.js',
     item: [ [Object] ] },
   { name: 'users/admin.js',
     item: [ [Object] ] },
   { name: 'users/admin.js',
     item: [ [Object] ] }
  ]
我想要类似的东西:

  [ 
   { name: 'core/core.js',
     item: [ [Object] ] },
   { name: 'users/admin.js',
     item: [
       [ [Object] ],
       [ [Object] ]
     ]
   },
  ]
这是我的密码:

const pathFile = [
  { name: 'core/core.js', item: [{ name: 'core' }] },
  { name: 'users/admin.js', item: [{ name: 'admin1' }] },
  { name: 'users/admin.js', item: [{ name: 'admin2' }] },
];
const obj = pathFile.reduce((a, name) => {
  if (!a[name]) {
    a[name] = { name, files: [] };
  }
  a[name].files.push({ name });
  return a;
}, {});
const arr = Object.values(obj);
console.log(JSON.stringify(arr));

您的问题是在
reduce()
循环中对键使用了错误的值。在代码中,
name
指的是
reduce
中的整个对象,因此需要对键使用
name.name
,因为reduce循环中调用的
name
每个项都有一个
name
属性。最好使用不同的参数名称,例如
curr
,这样更清晰

const pathFile=[{name:'core/core.js',项:[{name:'core'}]},{name:'users/admin.js',项:[{name:'admin1'}]},{name:'users/admin.js',项:[{name:'admin2'}]},];
const obj=pathFile.reduce((a,curr)=>{
如果(!a[curr.name])a[curr.name]=curr
else a[curr.name].item.push(…curr.item);
返回a;
}, {});
常量arr=对象值(obj);

console.log(arr)
您尝试了什么?我们不是来给你做作业的……是的,我试过了,但不起作用,我只是用我正在编写的代码更新了我的问题trying@JorgeFuentesGonzález发布的示例似乎非常清楚(或者现在已经很清楚)。@MarkMeyer Yep,现在它有了一个
,这是我的代码:
,他尝试了代码。