【发布时间】:2017-11-21 10:55:24
【问题描述】:
我正在尝试将公司名称放在卡号前面,这里的代码是我试图让它在前面打印名称的代码。我在这里遇到的问题是每个公司都有规则 - 条件,我正在努力将这些规则变成 if 语句的条件。
我意识到我正在做的 if 语句不是处理这个问题的好方法,但我只是要求解释处理这个问题的最佳方法。
AMEX卡规则: - 长度为 15 - 以“34”或“37”开头
发现卡规则: - 长度为 16 - 以“6011”开头
万事达卡规则: - 长度为 16 - 以“51”或“55”开头
VISA卡规则: - 以“13”或“16”或“4”开头
我正在从代码中看到的另一个文件中读取数字,我认为我不必包含这个,但这就是我遇到问题的原因 我并不想跳过一个 if 语句,只是说我的不切实际
这是我的代码:
import { createReadStream } from 'fs'
import { createInterface } from 'readline'
const lineReader = createInterface({
input: createReadStream('data/input.txt')
})
lineReader.on('line', (creditCard: string) => {
if ((creditCard.length === 15 && creditCard.substring(0, 1) === '37')) {
creditCard = '(AMEX) ' + creditCard + ' valid'
} else {
return
}
console.log('Line from file: ', creditCard)
})
【问题讨论】:
-
我不完全理解你的问题。您是否在寻求一种方法来简化逻辑,而不是使用一堆 if 语句?
-
如果我正在做的语句不是一个好的处理方式你为什么这么认为?
-
@Rajesh 我认为这是因为我需要为每个变化的条件制作一个
-
@YAHsaves 是的,我正在尝试制作一个简单的小条件来适应每张卡的所有规则:如果满足某张卡的条件,它会将公司名称附加到前面信用卡是从另一个文件中读取为字符串的数字
-
在下面查看我的答案
标签: javascript node.js typescript ts-node