我有一个格式化货币的函数:
export const formatDollar = (dollar) => {
const format = function moneyFormat(val, sign = '$ ') {
const pieces = parseFloat(val).toFixed(2).split('');
let ii = pieces.length - 3;
while ((ii -= 3) > 0) {
pieces.splice(ii, 0, ',');
}
return sign + pieces.join('');
};
return format(dollar);
};
这部分导致 ESLint 错误:
while ((ii -= 3) > 0) {
件.splice(ii, 0, ',');
}
error Unexpected assignment within a 'while' statement no-cond-assign
我应该如何编写此语句以便 ESLint 检查通过?
最佳答案
表达式ii -= 3
相当于ii = ii - 3
,并且可以替换为ii - 3 > 0
。但是,因为在这种情况下它不再修改变量 ii
。您需要在循环中显式递减它。所以你可以像这样重写它:
while (ii > 3) { // or ii - 3 > 0
ii = ii - 3;
pieces.splice(ii, 0, ',');
}
几个测试:
const formatDollar = (dollar) => {
const format = function moneyFormat(val, sign = '$ ') {
const pieces = parseFloat(val).toFixed(2).split('');
let ii = pieces.length - 3;
while (ii > 3) {
ii = ii - 3
pieces.splice(ii, 0, ',');
}
return sign + pieces.join('');
};
return format(dollar);
};
console.log(formatDollar(12345678))
console.log(formatDollar(12345))
console.log(formatDollar(12))
console.log(formatDollar(.12))
关于javascript - ESLint 错误 : Unexpected assignment within a 'while' statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46381082/