Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

108
Views
La función JS funciona solo a veces

Como dice el título, tengo una función de JavaScript que no siempre funciona y no sé por qué.

JS:

 function weapon() { var players = document.getElementById("playersList").value.split(",") var rand2 var newPlayers = "" var num = players.length - 1 for (var i = 0; i < num; i++) { rand2 = Math.floor(Math.random() * num) newPlayers += (players[rand2].trim() + ",") if (i != num) { newPlayers += "\n" } players.splice(rand2, 1) } newPlayers += players[0] document.getElementById("playersList").value = newPlayers }

HTML:

 <textarea id="playersList"></textarea> <button onclick="weapon()">RANDOMIZE</button>

En realidad, hay más código en la función, pero esa parte funciona siempre.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Parece que el código puede fallar intermitentemente en esta línea:

 newPlayers += (players[rand2].trim() + ",")

Al final de su bucle for , llama:

 players.splice(rand2, 1)

donde splice muta el estado de los players y reduce la cantidad de elementos en la matriz en 1.

Cuando se llama a la siguiente iteración del ciclo, rand2 tiene la posibilidad de generar un valor mayor que la cantidad de elementos en la matriz de players . Entonces recibirá un error si intenta acceder a una posición de índice que no existe.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!