¿Cómo imprimir solo los valores en la pantalla?
let room1 = new Map(); room1.set("candles", 8) room1.set("fridge", 1) room1.set("washing machine", 3) room1.set("chairs", 4) room1.set("sofa", 2) room1.set("jacuzzi", 6) let text4 = ""; room1.forEach(function(key) { text4 += key + "<br>" }); document.getElementById("demo8").innerHTML = text4; <p id="demo8"></p>Es 2022. Olvídate de forEach y usa for...of . Obtiene pares clave-valor al iterar sobre un Map :
let room1 = new Map(); room1.set("candles", 8) room1.set("fridge", 1) room1.set("washing machine", 3) room1.set("chairs", 4) room1.set("sofa", 2) room1.set("jacuzzi", 6) let text4 = ""; for(let [key,value] of room1) { text4 += `${key} - ${value}<br>`; // this could be key+" - "+value+"<br>" of course }; document.getElementById("demo8").innerHTML = text4; <p id="demo8"></p> 1) Para unmejor rendimiento, use for...of en lugar de forEach :
for(let [key] of room1) { text4 += key + "<br>"; }; 2) Código corto ( sintaxis extendida ) para obtener las keys de su Map y convertir a Array :
[...room1.keys()].forEach(function(key) { text4 += key + "<br>" }); 3) Lo mismo de la primera solución pero con Array.from(...) explícito:
Array.from(room1.keys()).forEach(function(key) { text4 += key + "<br>" }); 4) Agregue el value del primer parámetro a la función forEach :
room1.forEach(function(value, key) { text4 += key + "<br>" });Ejemplo:
let room1 = new Map(); room1.set("candles", 8) room1.set("fridge", 1) room1.set("washing machine", 3) room1.set("chairs", 4) room1.set("sofa", 2) room1.set("jacuzzi", 6) let display = document.getElementById("demo8"); for (let [key] of room1) { display.innerHTML += key + "<br>"; }; <p id="demo8"></p>Solo puede obtener las llaves directamente.
let rooms = new Map(); rooms.set("candles", 8) rooms.set("fridge", 1) rooms.set("washing machine", 3) rooms.set("chairs", 4) rooms.set("sofa", 2) rooms.set("jacuzzi", 6) console.log([...rooms.keys()]);