我有一个像这样的 ObjectIds 数组:[ 5cd295fbc53f626fd9d70894, 5cb0624945111f1c5fdf2527, 5cc290f5b90fc527c1e46efd, 5cd6737f294e7b6ec3d9420f, 5cd295fbc53f626fd9d70894, 5cb0624945111f1c5fdf2527, 5cc290f5b90fc527c1e46efd, 5cd6737f294e7b6ec3d9420f, 5cd295fbc53f626fd9d70894 ]我需要将每个 Objectid 转换为字符串。我试过 toString() 和 JSON.stringify()。但是 toString() 将每个字符拆分为一个字符串,而 JSON.stringify() 不会影响数组。实际上,我正在努力寻找数组中的唯一 ID。我尝试了许多函数来获取唯一元素,但它们似乎只适用于数字和字符串,而不适用于 ObjectId。找到元素的类型后,它会将其显示为对象。所以我试图将对象数组转换为字符串数组,以便我可以轻松使用其中一个函数来获取唯一元素。预期的输出是这样的:[ "5cd295fbc53f626fd9d70894", "5cb0624945111f1c5fdf2527", "5cc290f5b90fc527c1e46efd", "5cd6737f294e7b6ec3d9420f", "5cd295fbc53f626fd9d70894", "5cb0624945111f1c5fdf2527", "5cc290f5b90fc527c1e46efd", "5cd6737f294e7b6ec3d9420f", "5cd295fbc53f626fd9d70894" ]
3 回答

杨__羊羊
TA贡献1943条经验 获得超7个赞
你可以用地图来做。为数组中的每个元素调用 toString 并将它们作为字符串返回到新数组中。
请尝试以下代码:
const stringsArray = objectIds.map(x => x.toString());
之后,在数组中获得唯一结果的最有效方法是将它们放在 Set 中。所以它看起来像下面这样:
const uniqueStrings = [...new Set(stringsArray)];
希望能帮助到你!

哈士奇WWW
TA贡献1799条经验 获得超6个赞
您可以使用map并将String构造函数作为函数传递,这会将每个 Objectid 转换为字符串:
Objectids.map(String) //=> [ "5cd295fbc53f626fd9d70894",
// "5cb0624945111f1c5fdf2527", ...
这不会改变 Objectids。它将返回一个新数组。
添加回答
举报
0/150
提交
取消