首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只过滤对象javascript数组中的唯一值

只过滤对象javascript数组中的唯一值
EN

Stack Overflow用户
提问于 2020-08-14 15:00:43
回答 6查看 388关注 0票数 7

我有一个对象数组,我只想过滤唯一的样式,并且不会重复。

代码语言:javascript
复制
const arrayOfObj = [ {name:'a' , style:'p'} , {name:'b' , style:'q'} , {name:'c' , style:'q'}]

result expected : [ {name:'a' , style:'p'}]
EN

Stack Overflow用户

回答已采纳

发布于 2020-08-14 15:17:01

这里有一个O(n)时间复杂度的解决方案。您可以迭代所有条目以跟踪条目出现的频率。然后使用filter()函数来过滤那些只出现一次的。

代码语言:javascript
复制
const arrayOfObj = [
  { name: "a", style: "p" },
  { name: "b", style: "q" },
  { name: "c", style: "q" },
]

const styleCount = {}

arrayOfObj.forEach((obj) => {
  styleCount[obj.style] = (styleCount[obj.style] || 0) + 1
})

const res = arrayOfObj.filter((obj) => styleCount[obj.style] === 1)

console.log(res)

票数 3
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63408007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档