Почему квадратные скобки необходимы для stringify всех элементов карты в Javascript?

проблема: Я не могу найти удовлетворительного объяснения того, почему карты javascript нуждаются в квадратных скобках для JSON.метод stringify для "достижения" (?) во вложенные элементы. Я думаю, что мне не хватает чего-то в ES6 или чего-то, присущего типу данных карты.

Я могу преобразовать карту в объект и stringify-но почему этот дополнительный шаг необходим?

мой опыт:

const blah = new Map();

blah.set('u', {
    'something': [{'hey':98}, 56, 'bob']
});

blah.set({
    'hey': {'hey': 78}
}, 'what?');

console.log(JSON.stringify(...blah));

//["u",{}]
//I thought this would yield the result of the below console.log

console.log(JSON.stringify([...blah]))

//[["u",{"something":[{"hey":98},56,"bob"]}],[{"hey":{"hey":78}},"what?"]]
//Why are the square brackets needed to stringify and display each element of 
//the map?

этой статьи подтверждает поведение, но не объясните, почему это происходит.

1 ответов


JSON.stringify(...blah) is