Javascript 如何按标题对嵌套数组的元素进行分组?
我已经问了一个问题-,并得到了令人愉快的回答。这个问题有点像那样,但不完全是这样 有一个数组:Javascript 如何按标题对嵌套数组的元素进行分组?,javascript,Javascript,我已经问了一个问题-,并得到了令人愉快的回答。这个问题有点像那样,但不完全是这样 有一个数组: var ind = ["Apple", "Pear", "Banana"]; 和另一个阵列: var arr = [ [ "Pear", 12, 34, 54, 76, 23, 232 ], [ "Apple", 54, 22, 11, 23, 21, 33 ]
var ind = ["Apple", "Pear", "Banana"];
和另一个阵列:
var arr = [
[ "Pear", 12, 34, 54, 76, 23, 232 ],
[ "Apple", 54, 22, 11, 23, 21, 33 ],
[ "Banana", 54, 65, 11, 43, 66, 75 ],
[ "Pear", 23, 11, 46, 76, 33, 98 ],
[ "Apple", 12, 34, 54, 76, 23, 232 ],
[ "Banana", 54, 22, 11, 23, 21, 33 ],
];
如何在数组ind中按顺序组合子数组的所有值,使其如下所示:
var arr = [
["Apple", [54,12], [22,34], [11,54], [23,76], [21,23], [33,232]],
["Pear", [12,23], [34,11], [54,46], [76,76], [23,33], [232,38]],
["Banana", [54,54], [65,22], [11,11], [43,23], [66,21], [75,33 ]]
];
根据
ind
数组,使用array#Filter
过滤arr
。然后使用array#reduce
在对象查找中生成所需的输出,然后使用object.values()
提取所有值
const arr=[“梨”,12,34,54,76,23,232],“苹果”,54,22,11,23,21,33],“香蕉”,54,65,11,43,66,75],“梨”,23,11,46,76,33,98],“苹果”,12,34,54,76,23,232],“香蕉”,54,22,11,23,21,33],
ind=[“苹果”、“梨”、“香蕉”],
matched=arr.filter(a=>ind.includes(a[0])),
结果=对象.values(匹配的.reduce((r,[fruit,…rest])=>{
r[水果]=r[水果]|[水果,[],[],[],[],[],[],[],[],[],[];
rest.forEach((v,i)=>r[水果][i+1]。推(v));
返回r;
},[]));
控制台日志(结果)代码>
。作为控制台包装{max height:100%!important;top:0;}
请添加您迄今为止尝试过的代码