Javascript 基于object.differentValue==静态值,仅将object.value存储到set()中

Javascript 基于object.differentValue==静态值,仅将object.value存储到set()中,javascript,Javascript,试图找出最好的方法来做到这一点,而不击中一个坏的bigO。基本上,我有一个值标识符name,我只想根据object.name===name获取对象object.id中的唯一值,因此Set()将只包含与找到name的条件相关的id 例如 const uniqueIds = new Set(); const name = "billy"; const objects = [ {id: 1, name: "billy"}, {id: 2, nam

试图找出最好的方法来做到这一点,而不击中一个坏的bigO。基本上,我有一个值标识符
name
,我只想根据
object.name===name
获取对象
object.id
中的唯一值,因此
Set()
将只包含与找到name的条件相关的id

例如

const uniqueIds = new Set();
const name = "billy";
const objects = [
    {id: 1, name: "billy"},
    {id: 2, name: "billy"},
    {id: 3, name: "jack"},
    {id: 4, name: "kevin"},
]
用[1,2]实例化uniqueid的最佳方法是什么

我真的必须使用
filter()
进入新数组,然后使用
map()
使用
uniqueid.add(id)


或者有没有更好的方法,可以使用类似于
将ID插入objects.name==name
的uniqueID中这样的快捷方式?

您可以使用
reduce
Set
来获取唯一ID

const name=“比利”;
常量对象=[
{id:1,名字:“比利”},
{id:2,名字:“比利”},
{id:2,名字:“比利”},
{id:3,名字:“杰克”},
{id:4,名字:“凯文”},
]
const uniqueIds=objects.reduce((结果,obj)=>{
if(obj.name==name)result.add(obj.id)
返回结果
},新集合())

console.log(Array.from(newset(uniqueid)))
很高兴它帮助了@FiddleFreak:)