Typcript'te harita başlatma [duplicate]
Typcript'te aşağıdaki Map'i başlatmaya çalışıyorum. Yazdırdığımda boş görünüyor.
let map: Map<string, object> = new Map<string, object> ([
[
"api/service/method",
{
uriPath: {}
}
],
[
"\"type\": \"html\"",
{
body: {}
}
]
]);
console.log(JSON.stringify(map));
// printing {}
// but not the initialized values
Yanıtlar
Doğru şekilde başlatılır, ancak yazdırıldığında tüm değerleri bir dizi gibi yazdırmaz. Ancak anahtarlara erişerek kontrol edebilirsiniz - bunlar var:
let map = new Map([
[
"api/service/method",
{
uriPath: {}
}
],
[
"\"type\": \"html\"",
{
body: {}
}
]
]);
console.log(map);
console.log(map.get('api/service/method'));
console.log(map.get('"type": "html"'));
Ayrıca ilgili: Konsolda bir javascript ES6 harita nesnesini nasıl görüntüleyebilirim?
Orada belirtildiği gibi, haritayı yayabilir ve şunu yazdırabilirsiniz:
let map = new Map([
[
"api/service/method",
{
uriPath: {}
}
],
[
"\"type\": \"html\"",
{
body: {}
}
]
]);
console.log([...map]);
Bunun nedeni JSON.stringify
, bir Haritanın nasıl dizileneceğini bilmemesidir, bu nedenle onun yerine temeldeki nesneyi dizgileştirmeye çalışır, bu da boş bir nesneye neden olur.
Onun console.log(JSON.stringify([...a.entries()]));
yerine dene
Bir nesnenin dizgesini dizmek, özelliklerini dizgilendirmeyi içerir, ancak Map
verilerini kaydetmek için özellikleri kullanmaz. Böylece saf bir şekilde dizerseniz boş bir nesne elde edersiniz.
Bunun yerine önce bir diziye dönüştürün:
console.log(JSON.stringify([...map]));
Bir haritada JSON.stringify () kullandığınızda, size her zaman {} verir. Daktilo yazısı doğru yaptığınızı söylüyorsa, harita muhtemelen doğru şekilde başlatılmıştır.