Estoy tratando de llenar gradualmente una matriz dentro de each función como esta:
$('#reference-select').change(function () { var intensity_list = new Array(); var angle_list = new Array(); $("#reference-select option:selected").each(function () { $.get(window.location.origin+'/lims/upload/'+reference_list[$(this).val()]['File'], function(response) { data = response; // Split Data and refine lines = data.split('\n'); let angle_arr = [] let intensity_arr = []; for (var i = 0; i < lines.length; i++) { cols = lines[i].split('\t'); angle_arr.push(parseFloat(cols[5])); intensity_arr.push(parseFloat(cols[6])); } angle_arr = angle_arr.filter(Number.isFinite).slice(1); intensity_arr = intensity_arr.filter(Number.isFinite); if (angle_arr.length > 40) { var top_reflexes = get_top_reflexes(angle_arr, intensity_arr, 10); } else if (angle_arr.length > 20) { var top_reflexes = get_top_reflexes(angle_arr, intensity_arr, 3); } else { var top_reflexes = get_top_reflexes(angle_arr, intensity_arr, 1); } angle_list.push(top_reflexes[0]); intensity_list.push(top_reflexes[1]); }); }); console.log([[1,2,3],[4,5,6]]); \\ This works as expected console.log(intensity_list); \\ This produces strange output console.log(intensity_list[0]); \\ This results in undefined output }); Básicamente, inserto valores de diferentes archivos que el usuario puede seleccionar en el menú desplegable #reference-select en las dos matrices angle_list e intensity_list .
Ahora me gustaría usar las listas pobladas fuera de cada función, pero experimento un comportamiento muy extraño. La línea console.log(intensity_list); parece funcionar, pero el registro resultante se ve extraño en la consola:
Debería mostrar una matriz similar a la línea console.log([[1,2,3],[4,5,6]]); :
¿Que está sucediendo aquí? ¿Por qué parece que la lista de intensity_list no está poblada fuera de each ?