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在父对象上循环。