Javascript 使ObjectId在数组中唯一的最快方法是什么?

Javascript 使ObjectId在数组中唯一的最快方法是什么?,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,使ObjectId在数组中唯一的最快方法是什么? 为了测试两个objectid是否相等,我是否可以将objectid转换为其他类型,如数字或字符串?最简单的方法是添加id作为对象的键,如下所示: var array = [1, 2, 3, 4, 5, 6, 2, 3, 4] var obj = {} array.forEach(function(id){obj[id] = true}) array = Object.keys(obj) 其他替代方法是对数组进行排序,使用二进制搜索,并使用一些数

使ObjectId在数组中唯一的最快方法是什么?
为了测试两个objectid是否相等,我是否可以将objectid转换为其他类型,如数字或字符串?

最简单的方法是添加id作为对象的键,如下所示:

var array = [1, 2, 3, 4, 5, 6, 2, 3, 4]
var obj = {}
array.forEach(function(id){obj[id] = true})
array = Object.keys(obj)

其他替代方法是对数组进行排序,使用二进制搜索,并使用一些数据结构,如AVL树。

为什么ObjectId不是唯一的?是的,您可以执行
ObjectId.toString()
来获取唯一的字符串。@adeneo因为我获取的ObjectId不是来自'\u id'。在聚合之后,我得到了一个非常大的objectid数组。ObjectID在数组中不是唯一的。那么快速搜索应该可以帮助您->记住调用对象上的
toString
,否则比较总是失败的,因为没有两个对象是相同的!这很快。