cómo eliminar el precio últimos seis ceros en reaccionar nativo
precio original - 699 rupias precio original - 800 rupias
Respuesta API - 699000000 rupias Respuesta API - 800000000 rupias
Intento esto. elimina todos los ceros.
var numstr = 800000000 while (numstr[numstr.length-1] === "0") { numstr = numstr.slice(0, -1) if (numstr[numstr.length-1] !== "0") {break;} if (numstr[numstr.length-3] === ".") {break;} }El problema con su código es la condición, procesa todos los dígitos en reversa hasta el primer carácter distinto de cero, sin límite. Puede mantener un contador de bucles y no iterar más de 6 veces; un for-loop con la condición de salida adecuada funcionaría aquí. Aunque no es necesario que lo hagas tan complicado.
Dos métodos simples:
1000000 para eliminar los últimos 6 dígitos. console.log(Math.floor(800000000 / 1000000)) // 800 console.log(Math.floor(699000000 / 1000000)) // 699 console.log("800000000".slice(0, -6)) // 800 console.log("699000000".slice(0, -6)) // 699Si necesita una solución más general/sin opiniones, use un ciclo for para verificar que cada carácter desde el final no sea cero, y divida esa cantidad, hasta 6|max de la cadena y regrese.
const removeUpTo6Zeros = val => { let i; for (i = 0; i < 6; i++) { if (val[val.length - 1 - i] !== '0') break; } return i ? val.slice(0, -i) : val; }; console.log(removeUpTo6Zeros("800000000")); // 800 console.log(removeUpTo6Zeros("699000000")); // 699 console.log(removeUpTo6Zeros("699000030")); // 69900003 console.log(removeUpTo6Zeros("699001003")); // 699001003 console.log(removeUpTo6Zeros("69900")); // 699 console.log(removeUpTo6Zeros("69")); // 69 console.log(removeUpTo6Zeros("6")); // 6 console.log(removeUpTo6Zeros("0")); // "" console.log(removeUpTo6Zeros("00")); // "" console.log(removeUpTo6Zeros("000")); // ""