首页 > 解决方案 > 如何修复我的代码,使其在我的函数中返回 num(digit)?

问题描述

function getDigit(number, index){
    let str = number.toString();
    let num;
    if (index === 0){
      index = str.length-1;
      num = str.charAt(index);

    }else{
      index = -(index);
      num = str.charAt(index);
    }
    return num;

  }
    console.log(getDigit(12345,3));

嗨!我正在尝试实现辅助函数 getDigit() 它将返回我传递给函数的数字的数字,因此例如 getDigit(12345,1) 应该给我 4 作为输出,而 (12345,2) 应该给me 3 作为输出...为什么我的函数不返回任何内容?

标签: javascript

解决方案


这是一种适用于负索引或可能大于字符串长度的索引的方法。索引被环绕,就好像字符串无限重复一样。

function getDigit(number, index) {
  const str = (number || 0).toString().split('').reverse().join('');
  let idx = index;
  while (idx < 0) idx += str.length;
  return str.charAt(idx % str.length);
}

console.log(JSON.stringify(
  [-10, -1, 0, 1, 2, 3, 4, 5, 10].map(i => getDigit(12345, i))
));


推荐阅读