[英]Concatenate arrays inside array by length
我有一个看起来像这样的数组:
[ ["01", "Bolognesa", "51"]
, ["01", "Spaghetti", "52"]
, ["01", "Ricardo", "1", "Manjar", "203", "La", "Beriso"]
, ["03", "Miguel", "4", "Manjar", "22", "El", "Beriso"]
]
我想按长度将它们合并到数组中。 像这样:
[
, [["01", "Bolognesa", "51"],["01", "Spaghetti", "52"]]
, [["01", "Ricardo", "1", "Manjar", "203", "La", "Beriso"],["03", "Miguel", "4", "Manjar", "22", "El", "Beriso"]]
]
我尝试了映射和过滤:
console.log(mappedText.map(i => i.filter(j => j.length)));
但是我无法破解。 有任何想法吗?
您可以将数组和长度作为分组的索引,并使用布尔值过滤数组。
var array = [["01", "Bolognesa", "51"], ["01", "Spaghetti", "52"], ["01", "Ricardo", "1", "Manjar", "203", "La", "Beriso"], ["03", "Miguel", "4", "Manjar", "22", "El", "Beriso"]], result = array .reduce((r, a) => { r[a.length] = r[a.length] || []; r[a.length].push(a); return r; }, []) .filter(Boolean); console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.