Necesito dividir un número por igual y empujar los valores en la matriz. Estoy usando 100 como ejemplo, pero cuando lo hago, sale [28, 24, 24, 24] y necesito que sea [25, 25, 25, 25]
const divide = () => { var number = 100 var n = 4 var values = [] while(number > 0 && n > 0){ var a = Math.floor(number / n / 4) * 4 number -= a n-- values.push(a) } console.log(values) }Si entiendo bien tu pregunta:
const divide = (num = 100, n = 4) => new Array(n).fill(num / n);La función Math.floor() devuelve el entero más grande menor o igual a un número dado, en su código estas funciones hacen que el resultado sea incorrecto
const divide = () => { var number = 100 var n = 4 var values = [] for(int i=1;i<=4;i++){ values.push(a/4) } console.log(values) }Aquí hay otra versión de hacerlo:
const divide = (num = 100, n = 4) => { const f=Math.floor(num/n); return [...Array(n)].map((_,i)=>i-n+1?f:num-i*f); } console.log(divide()); console.log(divide(100,3));