2017-09-23 3 views
0

Ich habe eine Funktion, die Währungsformate:ESLint Fehler: Unerwartete Zuordnung innerhalb einer 'while' Anweisung

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); 
}; 

Dieser Teil verursacht einen ESLint Fehler:

while ((ii -= 3) > 0) { pieces.splice(ii, 0, ','); }

error Unexpected assignment within a 'while' statement no-cond-assign

Wie Soll ich diese Anweisung schreiben, damit die ESLint-Prüfung besteht?

Antwort

2

Ausdruck ii -= 3 entspricht ii = ii - 3 und kann durch ii - 3 > 0 ersetzt werden. In diesem Fall wird die Variable ii jedoch nicht mehr geändert. Sie müssen es explizit in loop dekrementieren. So könnte man es so umschreiben:

while (ii > 3) { // or ii - 3 > 0 
    ii = ii - 3; 
    pieces.splice(ii, 0, ','); 
} 

Paar von Tests:

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))

Verwandte Themen