【问题标题】:How do I put a calculation inside a for loop with an if statement in between? What is the correct syntax?如何将计算放在 for 循环中,中间有 if 语句?什么是正确的语法?
【发布时间】:2021-12-25 10:36:49
【问题描述】:

使用我的 for 循环向后循环,我想得到每隔一个数字,将其加倍并检查该数字是否大于 9。如果数字大于 9,我想从中减去 9。我想在一个功能中做到这一点。也许使用内置功能。这是我到目前为止得到的:

const validateCred = array => {
  for (let i = array.length -2; i >= 0; i = i -2 ) {
    let multiply = array[i] * 2;
    if (multiply > 9) {
      let minusNine = multiply -9;
    }
  }
};

任何建议都会有很大帮助!

【问题讨论】:

  • 正文中的标题和脚本的联系在哪里? minusNine 的目的是什么? validateCred() 应该做什么?
  • 计算是for循环内的*2和-9,如您所见,if语句介于两者之间。 \这个练习是检查信用卡号码是否有效的更大练习的一部分。您从右边开始,不包括校验位(最右边的数字),并遍历必须加倍的所有其他数字,如果加倍数字使其大于 9,则必须从中减去 9。最后,您必须对所有数字求和并检查 (modulo)%10 = 0。

标签: javascript for-loop if-statement syntax


【解决方案1】:
  • 首先您需要一个数组来存储迭代数组res 的数字。
  • 要迭代 backwords,您必须以 array.length - 1 而不是 -2 开头,否则您将丢失最后一个。
  • 要遍历所有数字,将i-1 递减
const validateCred = array => {
  const res = [];
  for (let i = array.length -1; i >= 0; i = i -1 ) {
    let multiply = array[i] * 2;// double it
    if (multiply > 9) {//check if that number is bigger than 9
      let minusNine = multiply -9;//subtract nine from it
            res.push(minusNine);
    }else{
      res.push(array[i]); //just store as it is.
    }
  }
  return res.reverse()
};
validateCred([10,3,40,9]);// [11, 3, 71, 9]

【讨论】:

  • 非常感谢,帮了大忙!
  • 我很高兴它有所帮助,如果我的回答解决了您的问题,如果将其视为可接受的答案,我会更高兴!
猜你喜欢
  • 1970-01-01
  • 2015-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-11
  • 2015-04-26
  • 1970-01-01
相关资源
最近更新 更多