基本上我想把一個地圖變成一個字串作為文本。我已經嘗試過toString()模板文字,但那些顯然回傳 [object Map]。我還看到有些人將 Map 轉換為一個物件然后呼叫JSON.stringify()它。
但是我不希望我的地圖顯示為 JSON 物件,而是顯示為實際的地圖
假設我有一張地圖
{ 'key' => 'value' }
我希望它像上面那樣顯示而不是像下面那樣顯示
{
"key": "value"
}
有什么辦法可以做到這一點嗎?
更新:經過一些實驗,我終于找到了一個足夠好的方法
const convertMapToString = (m: Map<string, IGuildCache | object>) => {
let mapEntries = [...m.keys()]
return '{\n' mapEntries.map(k => {
return ' ' k ' => ' JSON.stringify(m.get(k), null, 2)
}).join(',\n') '\n}'
}
地圖的值是物件,所以我不介意將它們轉換為 JSON。
uj5u.com熱心網友回復:
您必須創建自己的函式,可能類似于:
function displayMapsWithCustomFormat(m: Map) {
let asStrings = m.map((key, value) => `"${key}" => "${value}"`);
console.log("{\n" asStrings.join(",\n") "}");
}
未測驗,但您可以嘗試一下。如果你espext其他型別,你可以復雜一點。就像你有嵌套地圖一樣,讓這個函式遞回。
uj5u.com熱心網友回復:
如果您需要顯示像 { 'key' => 'value' } 之類的物件,而不是“:”存在于鍵或值上,您可以這樣做
let data = {'key' : 'value'}
JSON.stringify(data).replace(":", " => ")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/338841.html
標籤:javascript 细绳 字典
上一篇:如何根據串列的值過濾字典
