en una matriz de [5,10,15,20,40]. necesitamos verificar el número con% y si obtenemos 5 y 10, lo tomaremos en 10% e imprimiremos 1, por lo que para 10 a 20 lo consideramos como 20% y verificamos el número si obtenemos cualquier número de allí entonces nosotros aumentará el número de la misma manera que necesitamos calcular. por ejemplo [ 10, 4, 40, 50, 70] el número máximo es 100 así que ese es el 100% y el resultado debería ser [1, 1, 0, 1, 1, 0, 1, 0, 0, 0] ahí hay 1 elemento en 0-10% (4), 1 en 10-20% (10), ninguno en 20-30%, y así sucesivamente. –
function calculating_marks(x) { for (let i = 0; i < x.length; i++) { x[i] <= 10 ? console.log("1") : console.log("0") x[i] > 10 && x[i] <= 20 ? console.log("1") : console.log("0") x[i] > 20 && x[i] <= 30 ? console.log("1") : console.log("0") x[i] > 30 && x[i] <= 40 ? console.log("1") : console.log("0") x[i] > 40 && x[i] <= 50 ? console.log("1") : console.log("0") x[i] > 50 && x[i] <= 60 ? console.log("1") : console.log("0") } } marks = [5,10,20,30,35,50] calculating_marks(marks)
Esta podría ser una solución a su pregunta, espero que resuelva su problema:
function calculating_marks(marks) { const marksResult = Array(10).fill(0); for (const mark of marks) { let markConverted = Math.floor(mark/10) - 1; if(markConverted === -1){ markConverted++; } marksResult[markConverted]++; } return marksResult; } let marks = [5,10,20,30,35,50] let marksConverted = calculating_marks(marks) console.log(marksConverted)
Guardar en una matriz y más si es verdadero
function calculating_marks(x) { // count for 10%,20%,.....100% var count = [0,0,0,0,0,0,0,0,0,0]; for (let i = 0; i < x.length; i++) { x[i] <= 10 ? count[0]++ : x[i] > 10 && x[i] <= 20 ? count[1]++ : x[i] > 20 && x[i] <= 30 ? count[2]++ : x[i] > 30 && x[i] <= 40 ? count[3]++ : x[i] > 40 && x[i] <= 50 ? count[4]++ : x[i] > 50 && x[i] <= 60 ? count[5]++ : false } console.log(count); } marks = [5,10,20,30,35,50] calculating_marks(marks) //Result (10) [2,1,1,1,1,0,0,0,0,0]
Aquí hay un posible enfoque con comentarios en línea:
// Your function with custom calculation const weirdCalculator = arr => { // Find largest number const largest = arr.sort((a,b) => ab).reverse()[0]; // Find 10% of largest number const p10 = Math.round(largest / 10); // Create result array const res = []; // Loop 10 times for(let i = 1; i <= 10; i++) { // With each new iteration add 10% and check // all numbers, passed to function, in loop // Calculate current range const currentRange = [(i - 1) * p10, i * p10]; // Reset current iteration counter let counter = 0; // Loop numbers, passed to function // If number in current range - increase counter for(const num of arr) if(num > currentRange[0] && num <= currentRange[1]) counter++; // Push counter to result array res.push(counter); } // Return result return res; } // Run function const result = weirdCalculator([5,10,20,31,34,50]); // Test console.log(result);