así que tengo esta matriz para ayudarme con mis opciones de selección de entrada
Selección de entrada:
<select id="example-select"></select>Y la matriz con las opciones.
const array_axis = ['2015', '2016', '2017', '2018', '2019', '2020'];//these are the options of my input selectAsí es como uso esa matriz como opciones para mi selección de entrada:
var select = document.getElementById("example-select"); for (index in array_axis) { select.options[select.options.length] = new Option(array_axis[index], array_axis[index]); }Esta es la matriz con la que quiero trabajar usando la selección de entrada
const data = [{ agrupacion: 'Hombre', col2015: 26.4, col2016: 28.7, col2017: 25.7, col2018: 23.7, col2019: 22.7, col2020: 26.4 }, { agrupacion: "Mujer", col2015: 26.8, col2016: 29, col2017: 27.1, col2018: 24.7, col2019: 24.4, col2020: 27.3 }];Lo que necesito es poder seleccionar una opción (2015,2016,2017,2018,2019,2020) y eliminar todas las demás claves que no coinciden en mi matriz de datos.
Por ejemplo, si elijo 2017 que coincide con la clave "col2017", elimine todas las demás claves que no se seleccionaron y deje la matriz como esta
const data = [{ agrupacion: 'Hombre', name: 25.7 }, { agrupacion: "Mujer", name: 27.1 }];o en lugar de eliminar todo lo que no estaba seleccionado, pensé que probablemente sería más fácil crear una nueva matriz con las claves seleccionadas y esto es lo que he intentado hasta ahora:
$("#example-select").change(function(){ var selection = 'col'+this.value; const selected = data.map(e => ({ name: e.agrupacion, data: selection })); console.log(selected); });pero mi salida es esta:
[{ data: "col2017", name: "Hombre" }, { data: "col2017", name: "Mujer" }];¿Hay alguna manera de lograr eso?
$("#example-select").change(function(){ var selection = 'col'+this.value; const selected = data.map(e => ({ agrupacion: e.agrupacion, name: e[selection] })); console.log(selected); }); Básicamente, en lugar de usar el name: selection use name: e[selection]