function sym(...args) { let arr = [...args]; while(!arr.length === 0) { arr.pop(); console.log(arr.length); } } console.log(sym([1,2,5],[2,3,5],[3,4,5])); Estaba tratando de resolver un problema, pero surgió otro problema. ¿Puede alguien explicarme por qué esto registra indefinido? El operador de igualdad estricta registra sin definir, pero el operador de igualdad normal no, aunque arr.length devuelve un número.
! tiene mayor precedencia de operadores que === .
while(!arr.length === 0) {es equivalente a
while((!arr.length) === 0) { Comparar un booleano con un número nunca funcionará con === , pero a veces funcionará con == , pero de cualquier manera, eso no es lo que quieres. Utilice !== 0 en su lugar.
function sym(...args) { let arr = [...args]; while(arr.length !== 0) { arr.pop(); } return arr; } console.log(sym([1,2,5],[2,3,5],[3,4,5]));