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

194
Views
JavaScript: asignar un valor a una cadena

Tengo una matriz de cadenas y quiero definir cada una de estas cadenas como un valor. Una ilustración simple sería

 varString = "Hello"; eval(varString + " = 9"); console.log(Hello);

Donde espero obtener 9 para Hello . Que obviamente está funcionando. ¡Pero me pregunto si hay una versión más ordenada de eso!

¡Ahora, te estarás preguntando por qué lo hago! La razón principal es que estoy tratando de "setPlaybackRate" para varios videos de YouTube incrustados en mi HTML.

 var player; function onYouTubeIframeAPIReady() { for (let index = 0; index < IDYT.length; index++) { element = IDYT[index]; object1 = Objects1(youtubeVideo[index], YTtime[index]); player = new YT.Player(element, object1); } }

donde, como puede ver, el player se define fuera de la función onYouTubeIframeAPIReady() cada una de las funciones de Objects1 y el IDYT se definen de la siguiente manera

 function Objects1(videoId1, startID1) { let object1 = { height: "315", width: "560", videoId: videoId1, playerVars: { autoplay: 0, loop: 1, start: startID1, // mute: 1, }, events: { onStateChange: Test1, }, }; return object1; }

y

 let IDYT = ["player", "player1"]; let youtubeVideo = ["00vnln25HBg", "E-xMXv3L5L8"]; let YTtime = [20, 456];

Pero el problema es cuando se inicia el evento, es decir, la función onPlayerStateChange dada por:

 function onPlayerStateChange() { player.setPlaybackRate(1.5); }

Solo el último video de YouTube tiene una tasa de reproducción establecida de 1.5, lo cual no esperaba. Creo que esto se debe principalmente a que solo se define la última variable del player . Si pudiera hacer un ciclo de cadenas que se cambian a variables que podrían ayudar. Agradecería mucho que me orientaran sobre cómo solucionar este problema.

Muchas gracias de antemano.

Enlaces útiles: https://developers.google.com/youtube/iframe_api_reference

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

0

Sí, su intuición es correcta de que solo se cambia el último jugador porque el siguiente jugador anula a los demás.

Una solución muy simple sería mantener una matriz de players .

 const players = []; function onYouTubeIframeAPIReady() { for (let index = 0; index < IDYT.length; index++) { element = IDYT[index]; object1 = Objects1(youtubeVideo[index], YTtime[index]); players.push(new YT.Player(element, object1)); } } // ..... // ...... function onPlayerStateChange() { players.forEach((player) => player.setPlaybackRate(1.5)); }
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!