碎片時(shí)間學(xué)編程「369]:將字符串轉(zhuǎn)換為布爾值

有時(shí),人們可能會(huì)遇到將值的字符串表示形式轉(zhuǎn)換為值本身的問題。這通常很簡(jiǎn)單,例如數(shù)值。然而,布爾值的字符串表示可能有點(diǎn)棘手。 出現(xiàn)此問題的原因是任何非空字符串在 JavaScript 中都被視為真實(shí)字符串。最重要的是,字符串可以有不同的大寫或空格,這使得將它們直接與常量進(jìn)行比較變得更加困難。 為了解決這個(gè)問題,通常最好使用一些轉(zhuǎn)換,即 String.prototype.toLowerCase() 和 String.prototype.trim() ,以使值的字符串表示形式更加一致。此外,在某些情況下,可接受值的數(shù)組可能會(huì)使執(zhí)行轉(zhuǎn)換變得更容易。
const toBoolean = (value, truthyValues = ['true']) => { ?const normalizedValue = String(value).toLowerCase().trim(); ?return truthyValues.includes(normalizedValue);};toBoolean('true'); // truetoBoolean('TRUE'); // truetoBoolean('True'); // truetoBoolean('tRue '); // truetoBoolean('false'); // falsetoBoolean('FALSE'); // falsetoBoolean('False'); // falsetoBoolean('fAlse '); // falsetoBoolean('YES', ['yes']); // truetoBoolean('no', ['yes']); // false
更多內(nèi)容請(qǐng)?jiān)L問:https://www.icoderoad.com