【问题标题】:Having some problems understanding why its not slicing my string [closed]在理解为什么它不切割我的字符串时遇到一些问题[关闭]
【发布时间】:2020-09-21 10:51:22
【问题描述】:
describe('China UnionPay', function() {
  let expect = chai.expect;

  for (var prefix = 624; prefix <= 626; prefix++) {
    for (let j = 17; j <= 19; j++) {
      let cardNum = `${prefix}7891123456789`;
      (function(prefix) {
        it(`it has a prefix of ${prefix} and a length of ${j}`, function() {
          //  console.log(`${cardNum.slice(0,j)}`)
          console.log('typeof cardNum', typeof cardNum, '    ', 'length of string =>', j, 'card is not the length of j?', cardNum.slice(0, j))

          expect(detectNetwork(cardNum.slice(0, j))).to.equal('China UnionPay');
        })
      })(prefix)
    }
  }
})

我想要这段代码做的是把cardNum 和从0 切片到j 当前的长度。我已经在前面添加了前缀,但不确定为什么它没有返回 cardNum 的切片部分并返回整个内容?

【问题讨论】:

  • cardNum 有 17 个字符长,所以 cardNum.slice(0, 17) 是整个字符串。
  • 你希望它是什么而不是整个事情?
  • 我太瞎了。你们很有帮助,谢谢!我只需要在字符串中添加更多数字,这将是我看不到的所有简单语法错误,再次感谢!

标签: javascript loops for-loop tdd slice


【解决方案1】:

您的代码中j 的值介于 17 到 19 之间。而字符串的长度,即 var cardNum 是 13 个字符 + var prefix 的 3 个字符。所以基本上你得到的cardNum变量的长度是16。 切片函数的语法是str_name.slice(startPointPosition, endPointPosition); 在上面的代码中 endPointPosition 即 var j 的值总是大于cardNum 的总长度。 如果您将 j 的值更改为小于 16,您可以看到更改。

【讨论】:

    猜你喜欢
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 2012-03-25
    • 1970-01-01
    相关资源
    最近更新 更多