如何从Set创建对象?无需遍历去重键数组能否实现?
当然可行,一步就能搞定
不用单独生成uniKeys数组再遍历,直接在去重的同时完成格式转换就行,两种写法都能实现:
第一种是先通过Set去重,转数组时直接映射成目标对象:
const dupObj = [{ id: 1, value: 'a' }, { id: 2, value: 'b' }, { id: 1, value: 'c' }]; const result = [...new Set(dupObj.map(item => item.id))].map(id => ({ val: String(id) })); // 输出结果:[ { val: '1' }, { val: '2' } ]
第二种用Array.from更简洁,它的第二个参数可以直接对Set里的每个元素做转换:
const result = Array.from(new Set(dupObj.map(item => item.id)), id => ({ val: String(id) }));
这两种写法都不需要先得到uniKeys再额外遍历,直接把去重和格式转换合并成了一步操作。
内容的提问来源于stack exchange,提问作者Run
相关产品推荐
相关产品推荐

