无法理解为什么函数返回未定义

时间:2019-03-25 16:40:18

标签: javascript

我正在创建一个删除下划线的函数,如果它是字符串的第一个字符。

该函数将输入转换为大写并获取第一个字符,并且在验证后(如果需要)它将删除第一个字符。然后再次使用修改后的输入调用相同的函数以重新验证。如果符合条件,我将从else返回修改后的单词。但是不知何故,它返回了undefined

let word = '__Hello_World';

function removeFirstUnderscore(ipWord) {
  // converting to uppercase and getting first character;
  let getFirstCharacter = ipWord.toUpperCase().charCodeAt(0); // 95
  // now checking if first character is in this range between 65 & 95
  if (getFirstCharacter <= 65 || getFirstCharacter >= 94) {
    // remove the first character & again call the recursive function to revalidate
    let removedFirstCharWord = ipWord.split('').splice(1).join('');
    console.log('**** ', removedFirstCharWord);
    removeFirstUnderscore(removedFirstCharWord)
  } else {
    // if first character is within range then return it
    return ipWord;
  }
}
console.log(removeFirstUnderscore(word))

2 个答案:

答案 0 :(得分:5)

您有一个if语句。

如果未满足条件,则您return ipWord

如果满足条件 ,则您呼叫 removeFirstUnderscore(removedFirstCharWord),但不返回

如果要返回递归调用的结果,则需要return

return removeFirstUnderscore(removedFirstCharWord);

答案 1 :(得分:0)

您需要在date = ['20140115', '20140215', '20140315', '20140415', '20140515', '20140615'] date ciao google microsoft 20140115 368000 37200000 135000 20140215 368000 37200000 135000 20140315 450000 37200000 110000 20140415 450000 37200000 110000 20140515 450000 37200000 110000 20140615 450000 37200000 110000 块中添加return语句。