Sha*_*_RB 3 javascript mongoose mongodb node.js
我有一个如下所示的 ObjectId 数组:
[ 5cd295fbc53f626fd9d70894,
5cb0624945111f1c5fdf2527,
5cc290f5b90fc527c1e46efd,
5cd6737f294e7b6ec3d9420f,
5cd295fbc53f626fd9d70894,
5cb0624945111f1c5fdf2527,
5cc290f5b90fc527c1e46efd,
5cd6737f294e7b6ec3d9420f,
5cd295fbc53f626fd9d70894 ]
Run Code Online (Sandbox Code Playgroud)
我需要将每个 Objectid 转换为字符串。
我尝试过 toString() 和 JSON.stringify()。但 toString() 将每个字符拆分为字符串,而 JSON.stringify() 不会影响数组。
实际上我正在努力寻找数组中唯一的 ID。我尝试了许多函数来获取唯一元素,但它们似乎只适用于数字和字符串,而不适用于 ObjectId。
找到元素的类型后,它将其显示为对象。
因此,我尝试将对象数组转换为字符串数组,以便我可以轻松使用其中一个函数来获取唯一元素。
预期输出如下:
[ "5cd295fbc53f626fd9d70894",
"5cb0624945111f1c5fdf2527",
"5cc290f5b90fc527c1e46efd",
"5cd6737f294e7b6ec3d9420f",
"5cd295fbc53f626fd9d70894",
"5cb0624945111f1c5fdf2527",
"5cc290f5b90fc527c1e46efd",
"5cd6737f294e7b6ec3d9420f",
"5cd295fbc53f626fd9d70894" ]
Run Code Online (Sandbox Code Playgroud)
你可以用 来做到这一点map
。调用toString
数组中的每个元素并将它们作为字符串返回到新数组中。
例如:
const stringsArray = objectIds.map(x => x.toString());
Run Code Online (Sandbox Code Playgroud)
那么在数组中获得唯一结果的最有效方法是将它们放在集合中。所以它看起来像下面这样:
const uniqueStrings = [...new Set(stringsArray)];
Run Code Online (Sandbox Code Playgroud)