Mi código comprueba si un usuario está disponible. Vea el fragmento a continuación:
const users = ['user1', 'user2', 'user3', 'user4'] const usersToAdd = 2 const getRandomWorker = (userArray) => { return userArray[Math.floor(userArray.length * Math.random())] } const availableUsers = [] for (let i = 0; i < usersToAdd; i += i) { let randomWorker = getRandomWorker(users) let didAddWorker = false while (!didAddWorker) { if (checkIfUserAvailable(randomWorker)) { availableUsers.push(randomWorker) users = users.filter((user) => user !== randomWorker) didAddWorker = true } else if (!users.length) { didAddWorker = true } else { users = users.filter((user) => user !== randomWorker) } } }Mi único problema es que contiene referencias inseguras a variables porque aparece el siguiente error:
Function declared in a loop contains unsafe references to variable(s) randomWorker.He buscado y jugueteado con mi código, pero no puedo deshacerme del error. Ya no se donde mirar.
Como sugirió TJ Crowder, tenía que hacer una función fuera del bucle:
const filterOut = (array, target) => array.filter(element => element !== target);Eso lo arregló. Un poco extraño pero puedo seguir sabiendo. ¡Gracias!