javascript - 按长度连接数组内的数组
问题描述
我有一个看起来像这样的数组:
[ ["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; }
推荐阅读
- android - Android Kotlin - 使用 SharedPreferences 保存和检索自定义模型的 ArrayList
- tensorflow - 在 Web 应用程序上部署 Mask-RCNN
- node.js - MongoDB 使用 $search 获取总计数聚合管道
- javascript - 从对象数组打印数据时出现问题,它显示不正确
- reactjs - 如何在 Reactjs 中将文章标题添加到 URL 中?
- c++ - 为什么没有调用我课堂上的移动作业?
- node.js - 为什么承诺拒绝不处理错误
- django - 如何根据用户的权限正确处理请求 Django
- r - 是否可以在将 as_grouped_data 与 flextable 一起使用时有条件地格式化行?
- rust - 是否可以用另一个变体引用自身的枚举变体?