[英]How to convert an array of mongoose ObjectIds into an array of strings?
我有一个像这样的ObjectId数组:
[ 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" ]
您可以使用地图来完成。 为数组中的每个元素调用toString,并将它们作为字符串返回到新数组中。
请尝试以下代码:
const stringsArray = objectIds.map(x => x.toString());
之后,在数组中获得唯一结果的最有效方法是将它们放在Set上。 因此,它看起来如下所示:
const uniqueStrings = [...new Set(stringsArray)];
希望能帮助到你!
将ObjectId转换为字符串不是答案。
但是,如果您只想查找唯一的ObjectId,则可以在JavaScript中使用set对象
根据MDN :
Set对象使您可以存储任何类型的唯一值,无论是原始值还是对象引用。
你可以做:
const set1 = new Set([your array]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.