javascript - 如何修复我的代码,使其在我的函数中返回 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 作为输出...为什么我的函数不返回任何内容?
解决方案
这是一种适用于负索引或可能大于字符串长度的索引的方法。索引被环绕,就好像字符串无限重复一样。
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))
));
推荐阅读
- algorithm - 使用 SSTable 进行基本过滤
- node.js - Pdf 未从 Aws Lambda 返回,但在本地工作正常
- mongodb - mongoimport - 云 uri 只允许一个位置参数
- python - 如何在 sympy 中扩展 Symbol 类?
- python - 我应该如何让我的 python PRNG 正常工作?
- reactjs - 异步 redux 调用后 React 中的条件重定向
- arrays - 如何在 Swift 中将 .filter 用于带有结构的数组?
- mysql - Loopback api 错误 401 需要授权
- google-cloud-platform - 谷歌云语音转文本,如何默默抛出 UnknownValueError?
- python - 处理对 github 的可执行文件依赖