Acabo de recibir un código de alguna parte, que estoy tratando de entender. Pero me quedé atrapado en un lugar que no puedo entender. El código Javascript es el siguiente:
for(t_var=0,n_var=i_var.length; t_var<n_var; t_var++) (e_var=i_var[t_var])[0] .removeEventListener(e_var[1],d_var)Es un javascript de una sola línea para bucle. No puedo entender el uso del segundo conjunto de corchetes, es decir, contiene (e_var=i_var[t_var]) . Creo que podría estar creando algún tipo de matriz porque [0] después del segundo par de paréntesis lo muestra como una matriz. Pero no estoy seguro de cuál es su uso exacto.
¿Alguien puede ayudar con eso, por favor?
Saludos
Puede reescribir el código de la siguiente manera para que sea más comprensible:
for(t_var=0,n_var=i_var.length; t_var<n_var; t_var++)(e_var=i_var[t_var])[0].removeEventListener(e_var[1], d_var); // on multiple lines for (t_var = 0, n_var = i_var.length; t_var < n_var; t_var++) (e_var = i_var[t_var])[0].removeEventListener(e_var[1], d_var); // using a for-loop with curly brackets for (t_var = 0, n_var = i_var.length; t_var < n_var; t_var++) { (e_var = i_var[t_var])[0].removeEventListener(e_var[1], d_var); } // splitting assignment and event listener removal for (t_var = 0, n_var = i_var.length; t_var < n_var; t_var++) { e_var = i_var[t_var]; e_var[0].removeEventListener(e_var[1], d_var); // ^ the expression `(e_var = i_var[t_var])` returns the value assigned to `e_var` } // removal of array length caching to make the loop more readable for (t_var = 0; t_var < i_var.length; t_var++) { e_var = i_var[t_var]; e_var[0].removeEventListener(e_var[1], d_var); } // more descriptive variable names for (index = 0; index < array.length; index++) { arrayElement = array[index]; arrayElement[0].removeEventListener(arrayElement[1], eventListener); } // using destructuring assignment for (index = 0; index < array.length; index++) { arrayElement = array[index]; const [htmlElement, eventType] = arrayElement; htmlElement.removeEventListener(eventType, eventListener); } // using for...of instead of standard for-loop for (const [htmlElement, eventType] of array) { htmlElement.removeEventListener(eventType, eventListener); } Tenga en cuenta que su ejemplo no usa var , let o const para definir las variables. Los cambios anteriores tampoco los usan a excepción de las nuevas variables introducidas por mí. Normalmente, las variables siempre deben definirse usando 1 de las 3 palabras clave (preferiblemente let o const ), de lo contrario, las variables son globales. Las variables globales a menudo conducen a un comportamiento inesperado, lo que resulta en errores.