const m = new Map();
m.set('key1', {})
m.set('keyN', {})
console.log(m.entries().next().value); // [ 'key1', {} ]
Если вы хотите получить первый ключ, используйте Map.prototype.keys, например
console.log(m.keys().next().value); // key1
Аналогично, если вы хотите получить первое значение, вы можете использовать Map.prototype.values, например
console.log(m.values().next().value); // {}
Причиной, по которой мы должны вызывать next() для возвращаемых значений, является то, что все эти функции возвращают iterators. Подробнее об итерационном протоколе здесь.
Ответ 2
Для конкретного примера, о котором вам интересно, деструктурирование было бы идеальным.
let m = new Map();
m.set('key1', {});
m.set('key2', {});
let [[, obj]] = m;
например.
let [pair] = m;
let [key, obj] = pair;
- один из вариантов деструкции, а затем захват значения, но более простым вариантом будет
let [obj] = m.values();
Ответ 3
Кроме того, это верно как для Set, так и для Map: вы можете преобразовать что-либо в Array, а затем получить любой элемент по его индексу. Что-то вроде этого:
let m = new Map();
m.set('key1', {});
m.set('key2', {});
Array.from(m)[0]; // ['key1', {}]