如何将JavaScript对象数组按指定属性转为排序后的唯一对象数组
解决方法:将去重排序后的ccy数组转为对象数组
嗨,这一步其实超简单的!你已经搞定了最核心的去重和排序工作,只需要对得到的字符串数组做一次map转换,就能生成每个元素是{ccy: 对应值}的对象数组啦。
完整代码示例
// 假设你的原始数据是这样的 const data = [{'id': 0, 'ccy': 'USD'}, {'id': 1, 'ccy': 'EUR'}, {'id': 2, 'ccy': 'USD'}, {'id': 3, 'ccy': 'GBP'}]; // 第一步:获取去重并排序的ccy字符串数组(这部分你已经写对啦) const uniqueSortedCcy = [...new Set(data.map(item => item.ccy))].sort(); // 第二步:转换为目标对象数组 const result = uniqueSortedCcy.map(ccy => ({ ccy })); // 看看结果 console.log(result); // 输出:[{ccy: 'EUR'}, {ccy: 'GBP'}, {ccy: 'USD'}]
关键说明
这里用了ES6的对象字面量简写语法:{ ccy } 等价于 { ccy: ccy },因为变量名和对象的属性名完全一致,所以可以省略重复的部分,代码更简洁清爽。
如果你喜欢更紧凑的写法,也可以把两步合并成一行:
const result = [...new Set(data.map(item => item.ccy))].sort().map(ccy => ({ ccy }));
这样就能直接得到你想要的、ccy唯一且已排序的对象数组啦!
内容的提问来源于stack exchange,提问作者Anand
相关产品推荐
相关产品推荐

