Javascript ESLint错误:在';而';陈述

Javascript ESLint错误:在';而';陈述,javascript,while-loop,eslint,eslint-config-airbnb,Javascript,While Loop,Eslint,Eslint Config Airbnb,我有一个设置货币格式的函数: 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

我有一个设置货币格式的函数:

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){
件.拼接(二,0,,);
}

“while”语句中的意外分配错误无条件分配


如何编写此语句以使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=(美元)=>{
常量格式=函数moneyFormat(val,符号=“$”){
const pieces=parseFloat(val).toFixed(2).split(“”);
设ii=件。长度-3;
而(ii>3){
ii=ii-3
件.拼接(二,0,,);
}
返回标志+件。连接(“”);
};
返回格式(美元);
};
控制台日志(格式化美元(12345678))
控制台日志(格式化美元(12345))
控制台日志(格式美元(12))

console.log(formatDollar(.12))
表达式
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=(美元)=>{
常量格式=函数moneyFormat(val,符号=“$”){
const pieces=parseFloat(val).toFixed(2).split(“”);
设ii=件。长度-3;
而(ii>3){
ii=ii-3
件.拼接(二,0,,);
}
返回标志+件。连接(“”);
};
返回格式(美元);
};
控制台日志(格式化美元(12345678))
控制台日志(格式化美元(12345))
控制台日志(格式美元(12))
console.log(格式化美元(.12))