Inisialisasi peta dalam skrip ketikan [duplikat]

Aug 17 2020

Saya mencoba untuk menginisialisasi di bawah Peta di skrip ketikan. Saat saya cetak, sepertinya kosong.

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

Jawaban

1 MauriceNino Aug 17 2020 at 14:35

Ini diinisialisasi dengan benar, tetapi mencetaknya tidak mencetak semua nilai seperti array. Tetapi Anda dapat memeriksanya dengan hanya mengakses kunci - kunci tersebut ada:

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"'));

Juga relevan: Bagaimana cara menampilkan objek peta ES6 javascript di konsol?

Seperti yang dinyatakan di sana, Anda bisa menyebarkan peta dan mencetaknya:

let map = new Map([
    [
        "api/service/method",
        {
            uriPath: {}
        }
    ],
    [
        "\"type\": \"html\"",
        {
            body: {}
        }
    ]
]);

console.log([...map]);

JessevanAssen Aug 17 2020 at 14:35

Itu karena JSON.stringifytidak tahu cara merangkai Peta, jadi ia akan mencoba merangkai objek yang mendasarinya, yang menghasilkan objek kosong.

Coba console.log(JSON.stringify([...a.entries()]));saja

NiettheDarkAbsol Aug 17 2020 at 14:35

Merangkai objek melibatkan merangkai propertinya, tetapi a Maptidak menggunakan properti untuk menyimpan datanya. Jadi Anda mendapatkan objek kosong jika Anda merangkainya secara naif.

Sebagai gantinya, konversikan ke array terlebih dahulu:

console.log(JSON.stringify([...map]));
LionelFoxcroft Aug 17 2020 at 14:39

Saat Anda menggunakan JSON.stringify () pada peta, itu akan selalu memberi Anda {}. Jika ketikan mengatakan Anda melakukannya dengan benar, peta mungkin diinisialisasi dengan benar.