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

102
Views
¿Cómo dibujar dinámicamente dibujar unidades de una matriz y emparejarlas con un valor numérico predefinido?

Así que estoy trabajando en una tarea en la que se supone que hago un seguimiento de "cuántos puntos ha ganado un equipo deportivo en una temporada" escribiendo una función llamada getTotalPoints que acepta una cadena de letras y devuelve el total de puntos ganados. Estas letras serían cualquier serie de "w" (ganancias) "d" (empates) y/o "l" (pérdidas).

La asignación incluye un valor numérico predefinido para cada letra (w = 3, d = 1 y l = 0), una función auxiliar para obtener estos valores getPointsFromResult y la función con un parámetro de cadena pasado, getTotalPoints('wwdl') para probar que la función getTotalPoints que escribí funciona correctamente.

Llegué a convertir la cadena en una matriz y luego traté de iterar en esa matriz. La respuesta correcta debería ser 7, pero obtengo un resultado de 16, porque parece que el ciclo forEach está iterando todo el 4 de x (siendo 4 la longitud de la matriz) Como resultado de 4 conjuntos de 3+1+0 (esencialmente 4x4).

No tengo idea de cómo avanzar desde aquí y estoy completamente atascado.

 const RESULT_VALUES = { w: 3, d: 1, l: 0 } /** * Takes a single result string and (one of 'w', 'l', or 'd') * and returns the point value * * @param {string} result * @returns {number} point value */ function getPointsFromResult(result) { return RESULT_VALUES[result]; } // Create getTotalPoints function which accepts a string of results // including wins, draws, and losses ie 'wwdlw' // Returns total number of points won let getTotalPoints = function(pointsString) { let pointsArray = Array.from(pointsString); console.log(pointsArray); let sum = 0 pointsArray.forEach(function(result) { console.log(result) let wins = getPointsFromResult('w'); let draws = getPointsFromResult('d'); let losses = getPointsFromResult('l'); console.log(wins); console.log(draws); console.log(losses); sum += wins; sum += draws; sum += losses; }) return sum; }; // Check getTotalPoints console.log(getTotalPoints('wwdl')); // should equal 7

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

0

Qué tal algo como esto:

 const RESULT_VALUES = { w: 3, d: 1, l: 0 } function getPointsFromResult(result) { return RESULT_VALUES[result]; } let getTotalPoints = function(pointsString) { let pointsArray = Array.from(pointsString); // Put value of each letter into a results array: let results = pointsArray.map(result => getPointsFromResult(result)); // Sum all values in above results array to get total. let sum = results.reduce((a, b) => a + b, 0); return sum; }; console.log(getTotalPoints('wwdl')); // should equal 7

about 4 years ago · Juan Pablo Isaza Report

0

split() cadena "wwdl" en una matriz:

 'wwdl'.split('') //['w', 'w', 'd', 'l']

Luego obtenga cada clave del objeto ('w', 'd', 'l') y obtenga el valor (3, 1, 0).

 object['w'] // first iteration 3 object['w'] // second iteration 3 object['d'] // third iterayion 1 object['l'] // fourth iteration 0

.reduce() puede agregar los valores y devolver una suma:

 sum + current value

En el siguiente ejemplo log(data) es solo una función de ayuda para iniciar sesión en la consola más fácilmente.

 const log = data => console.log(JSON.stringify(data)); const record = `wwdl`; const totalScore = record => { const scoring = { w: 3, d: 1, l: 0 }; let recArr = record.split(''); log('String as an Array:'); log(recArr); return recArr.reduce((sum, cur) => { log('Current Key: ' + cur + ': return: ' + scoring[cur]); return sum + scoring[cur]; }, 0); }; log('Total Score: ' + totalScore(record));
 .as-console-row::after { width: 0; font-size: 0; } .as-console-row-code { width: 100%; word-break: break-word; }

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!