[英]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.