javascript - 按字母顺序对对象数组进行排序并删除重复项
问题描述
所以我有一个类似array
的objects
:
[
{ letter: 'A', title: 'All' },{ letter: 'B', title: 'Business' },
{ letter: 'G', title: 'Cor' },
{ letter: 'G', title: 'Car' },
]
我该如何对其进行排序,使其看起来像这样:
[
{ letter: 'A', title: 'All' },
{ letter: 'B', title: 'Business' },
{ letter: 'G', title: 'Cor', 'Car' },
]
解决方案
像这样的东西会起作用
const original = [
{ letter: 'A', title: 'All' },
{ letter: 'B', title: 'Business' },
{ letter: 'G', title: 'Cor' },
{ letter: 'G', title: 'Car' },
];
const map = {};
original.forEach(({letter, title}) => {
if(!Object.hasOwnProperty.call(map, letter)) map[letter] = {letter, title: [title]};
else {
map[letter]?.title.push(title);
}
});
console.debug(Object.values(map));
推荐阅读
- c - OpenSSL C API 实现 openssl asn1parse 逻辑
- python - 为什么我会收到“AttributeError:'list' 对象没有属性'encode'”?
- mongodb - 消息应用程序的 MongoDB 聚合查询
- r - 定义将pdf转换为cdf的函数时出现多个参数的问题
- python - 烧瓶路由重定向后如何处理数据
- c++ - 试图通过输入一个字母来退出 C++ 程序
- python - OSError:[Errno 9] 尝试写入 json 文件时出现错误的文件描述符
- mysql - 一个用例的 MySQL Query 帮助
- java - 无论我做什么,Spring Boot 应用程序中的 JSP 都会产生 404 错误
- vb.net - 根据登录状态动态呈现工具条菜单项,不允许后期绑定错误