函数js中的函数

时间:2018-04-04 16:03:31

标签: javascript function nested closures

我正在尝试创建一个将从字符串中删除第一个和最后一个字符的函数。我将字符串转换为数组,然后我想使用shift()和pop()方法删除字符。

我似乎遇到了将带有数组的splitStr变量传递给另一个弹出/移动角色的函数的问题。

我做错了什么?

let str = 'example';

let removeChar = function(str){
      let splitStr = str.split("");

      function popLast(splitStr){
        let popStr = splitStr.pop();
      }

      function shiftFirst(splitStr){
        let shiftStr = splitStr.shift();

      }

}

removeChar(str);

1 个答案:

答案 0 :(得分:1)

问题是你不是只是创建一个名为popLast和shiftFirst的函数来驱逐你的函数,调用是在函数内发生的,但从不被调用。

  

创建一个将从字符串中删除第一个和最后一个字符的函数   



let str = 'example';

let removeChar = function(str){
      let splitStr = str.split("");
      splitStr.pop();
      splitStr.shift();
      return splitStr.join("")
}


console.log(removeChar(str));




但这不是从字符串中删除第一个和最后一个字母的最佳方法,因为我们可以使用splice()

  

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice



function removeChar(string) {
   return string.slice(1, -1);
}
console.log(removeChar("example"));




我建议阅读有关return关键字的信息

  

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return