Метод entries
возвращает итератор.Каждое значение, которое дает итератор, представляет собой пару ключ / значение (массив с 2 элементами).
Один из способов получить контроль над этим - посмотреть, что произойдет, если вы добавите итератор в новый массив:
var numbers = new Map().set(1,'one').set(2,'two').set(3,'three').set(4,'four');
// Get everything from the iterator into a new array:
var arr = Array.from(numbers.entries());
console.log(arr);
Обратите внимание, что вы получаете серию пар ключ / значение в новый массив:
[ [1, "one"], [2, "two"], [3, "three"], [4, "four"] ]
Теперь к вашему коду.Первое присвоение key
и value
вводит в заблуждение, потому что вы не получаете один ключ и одно значение.Вместо этого вы берете первые две пары, которые дает итератор entries()
.
Если вы действительно хотите получить ключ first с соответствующим значением в 2 переменных, вам нужно написать:
var [[key, value]] = numbers.entries();