Necesito crear una matriz variable con índice (nombre) = valor, refiriéndose a html, ejemplo de cómo se vería esta matriz:
var array = []; array['name'] = 'value'; array['car'] = 'Ferrari'; array['car2'] = 'BMW'; array['color'] = 'Red'; console.log(array);En mi Html estoy usando la función .map() para obtener los valores pero la matriz que se forma tiene un índice automático, ¿cómo definir el índice de la matriz para que sea igual al campo de nombre?
<select multiple> <option value="car">Ferrari</option> Array ['car'] = 'Ferrari' ; let list = document.querySelectorAll("option"); let items = Array.from(list).map(elem => elem.text); console.log('items: '+items); <select style="width:130px ;" multiple> <option value="car" selected>Ferrari</option> <option value="car2">BMW</option> <option value="color">Red</option> <option value="color2">Black</option> </select>Está intentando crear un objeto con propiedades, no una matriz. Si viene de otro idioma, entonces puede ser confuso que JavaScript use una sintaxis similar a una matriz para acceder a las propiedades (llamada notación de paréntesis ).
Puede usar reduce porque está reduciendo varios elementos de una matriz a un solo objeto:
let list = document.querySelectorAll("option"); let items = Array.from(list).reduce((acc, elem)=> { const value = elem.getAttribute("value"); acc[value] = elem.text; return acc; }, {}); console.log(items); <select style="width:130px ;" multiple> <option value="car" selected>Ferrari</option> <option value="car2">BMW</option> <option value="color">Red</option> <option value="color2">Black</option> </select>