如何将布尔值 true/false 转换为字符串
How to change Boolean true/false into strings
我目前正在做一个涉及验证信用卡的项目,我有这个 luhn 算法:
export default function luhn(card: string): boolean {
return (
card.split('').reduceRight(function(prev: any, curr: any, idx) {
prev = parseInt(prev, 10)
if ((idx + 1) % 2 !== 0) {
curr = (curr * 2)
.toString()
.split('')
.reduce(function(p, c) {
return (parseInt(p, 10) + parseInt(c, 10)) as any
})
}
return prev + parseInt(curr, 10)
}, 0) %
10 ===
0
)
}
注意到那里的布尔值了吗?我将其用作 index.ts 的模块,如下所示:
import { createReadStream } from 'fs'
import { createInterface } from 'readline'
import { getCompanyName } from './cardType'
import cardValidator from './cardValidator'
const lineReader = createInterface({
input: createReadStream('data/input.txt')
})
lineReader.on('line', (creditCard: string) => {
var company = `${getCompanyName(creditCard)}: ${creditCard} (${cardValidator(
creditCard
)})`
console.log(company)
})
它目前输出到控制台是这样的:
MasterCard: 5105105105105100 (true)
MasterCard: 5105105105105106 (false)
我希望 true/false 成为 valid/invalid 我已经稍微研究了一下 (w3) 但不知道如何将任何内容集成到我的算法中,因为它需要您声明true 和 false 的变量。任何 suggestions/answers 将不胜感激
您可以简单地使用 ternary operator 将您想要的字符串直接包含在输出字符串中:
var company = `${getCompanyName(creditCard)}: ${creditCard} (${cardValidator(creditCard) ? "valid" : "invalid"})`
我目前正在做一个涉及验证信用卡的项目,我有这个 luhn 算法:
export default function luhn(card: string): boolean {
return (
card.split('').reduceRight(function(prev: any, curr: any, idx) {
prev = parseInt(prev, 10)
if ((idx + 1) % 2 !== 0) {
curr = (curr * 2)
.toString()
.split('')
.reduce(function(p, c) {
return (parseInt(p, 10) + parseInt(c, 10)) as any
})
}
return prev + parseInt(curr, 10)
}, 0) %
10 ===
0
)
}
注意到那里的布尔值了吗?我将其用作 index.ts 的模块,如下所示:
import { createReadStream } from 'fs'
import { createInterface } from 'readline'
import { getCompanyName } from './cardType'
import cardValidator from './cardValidator'
const lineReader = createInterface({
input: createReadStream('data/input.txt')
})
lineReader.on('line', (creditCard: string) => {
var company = `${getCompanyName(creditCard)}: ${creditCard} (${cardValidator(
creditCard
)})`
console.log(company)
})
它目前输出到控制台是这样的:
MasterCard: 5105105105105100 (true)
MasterCard: 5105105105105106 (false)
我希望 true/false 成为 valid/invalid 我已经稍微研究了一下 (w3) 但不知道如何将任何内容集成到我的算法中,因为它需要您声明true 和 false 的变量。任何 suggestions/answers 将不胜感激
您可以简单地使用 ternary operator 将您想要的字符串直接包含在输出字符串中:
var company = `${getCompanyName(creditCard)}: ${creditCard} (${cardValidator(creditCard) ? "valid" : "invalid"})`