如何在react native中删除price后六个零
原价- 699卢比原价- 800卢比
API响应-₹699000000API响应-₹800000000
我试试这个。它删除了所有的零。
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;}
}
你的代码的问题是条件,它处理所有的反向数字,直到第一个非零字符,没有限制。你可以保留一个循环计数器,迭代不超过6次;具有适当退出条件的for-loop
在这里工作。虽然你不需要把它弄得这么复杂。
两个简单的方法:
- 整数除法:除
1000000
后6位数字。
console.log(Math.floor(800000000 / 1000000)) // 800
console.log(Math.floor(699000000 / 1000000)) // 699
- 字符串切片:复制除最后6个字符外的所有字符。
console.log("800000000".slice(0, -6)) // 800
console.log("699000000".slice(0, -6)) // 699
如果你需要一个更通用/无间隔的解决方案,使用for循环从末尾开始检查每个字符的非零性,并从字符串中切片,最多6|max,然后返回。
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")); // ""