Tratando de obtener cierta información de una matriz más grande a una matriz más nueva. ¿Hay alguna manera más eficiente de analizar los datos que quiero usando solo los índices de desire_contents
airport_data_parser() funciona pero estoy buscando uno que pueda tener el mismo resultado pero usando desire_contents
airport_data = [["JFK","New York","United States",1,true], ["BOS","Massachusetts","United States",2,false], ["LOS","Califonia","United States",3,true], ["SJC","San Juan","United States",4,false]]; currated_airport_data = []; //desire_contents is an array that contains the values of desired indices I want desire_contents = [0,1,3]; unwanted_contents = [2,3];//tried [2,4] but for some reason [2,3] works var airport_data_parser = function () { if(airport_data.length > 0) { for(var data in airport_data) { currated_airport_data.push(airport_data[data]); for(contents in unwanted_contents) { currated_airport_data[data].splice(unwanted_contents[contents], 1); } } } console.log(currated_airport_data); } airport_data_parser();Resultado deseado
currated_airport_data = [["JFK","New York",1], ["BOS","Massachusetts",2], ["LOS","Califonia",3], ["SJC","San Juan",4]];Prueba esto:
currated_airport_data = airport_data.map(arr => [arr[0], arr[1], arr[3]]);O la solución más generalizada:
indexes = [0,1,3]; currated_airport_data = airport_data.map(arr => indexes.map(ind => arr[ind]));var desire_contents = [0,1,3]; var currated_airport_data= airport_data .map( x=>x.filter( (x,index)=>desire_contents.includes(index) ) );`Puede seleccionar sus datos con el uso de mapas y funciones de filtro. En la función de mapa, obtenemos las matrices de cada aeropuerto una por una y luego las filtramos. En la función de filtro, verificamos si el índice existe en nuestra matriz deseada. Si existe en nuestra matriz deseada, lo mantenemos en la lista. De lo contrario, la función de filtro no agrega ese valor a la nueva matriz.