首页 > 解决方案 > 按字母顺序对对象数组进行排序并删除重复项

问题描述

所以我有一个类似arrayobjects

[
    { 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' },
]

标签: javascripthtmlarraysreactjs

解决方案


像这样的东西会起作用

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));

推荐阅读