Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays - Fatal编程技术网

JavaScript中的两个不同数组并组合单个数组

JavaScript中的两个不同数组并组合单个数组,javascript,arrays,Javascript,Arrays,我有两个不同的数组父关系数组和子关系数组,并结合单个数组 这是父数组:- const cat=['a','b','c']; 这是子数组:- const sub=[{name:'cloth',cat:['a','b']},{name:'feshion',cat:['b','a']}] 输出将两个数组合并成单个数组,我使用的是映射和过滤方法,它不起作用 输出应该是这样的 const parent=[{name:'a',sub:['cloth','feshion']},{name:'b',sub:[

我有两个不同的数组父关系数组和子关系数组,并结合单个数组

这是父数组:-
const cat=['a','b','c'];
这是子数组:-
const sub=[{name:'cloth',cat:['a','b']},{name:'feshion',cat:['b','a']}]

输出将两个数组合并成单个数组,我使用的是映射和过滤方法,它不起作用 输出应该是这样的
const parent=[{name:'a',sub:['cloth','feshion']},{name:'b',sub:['cloth','feshion']},{name:'c',sub:[]}

请帮帮我,请告诉我任何想法

const result = cat.map(name => ({name, sub: sub.filter(s => s.cat.includes(name)).map(s => s.name)}));
产生:

[
   { "name": "a", "sub": ["cloth", "feshion"] },
   { "name": "b", "sub": ["cloth", "feshion"] },
   { "name": "c", "sub": [] }
]
这是该行的扩展版本,更容易理解:

const result = cat.map(catName => {
   const subs = sub
      .filter(s => s.cat.includes(catName))
      .map(s => s.name);

   return {name: catName, sub: subs};
});
运行代码:

const cat=['a','b','c'];
const sub=[{name:'cloth',cat:['a','b']},{name:'feshion',cat:['b','a']}];
const result=cat.map(name=>({name,sub:sub.filter(s=>s.cat.includes(name)).map(s=>s.name)});

控制台日志(结果)
So使用map和combine在父对象上循环。