JavaScript中return语句后代码无法执行?类方法实现问题求助
问题解决:return语句导致的不可达代码问题
你遇到的核心问题是return语句会立即终止函数执行,所以return this.arr[0];之后的this.arr.splice(0, 1);永远不会被执行,属于标准的不可达代码。
要实现“先获取数组第一个元素返回,同时删除该元素”的需求,你需要调整代码顺序:先保存要返回的元素,执行删除操作后再返回。修正后的代码如下:
remove() { // 数组为空时返回-1 if (!this.arr.length) { return -1; } // 先保存第一个元素 const firstItem = this.arr[0]; // 从数组中删除第一个元素 this.arr.splice(0, 1); // 返回保存的元素 return firstItem; }
另外,原代码里的else if(this.arr.length)完全可以简化成else,因为前面已经判断过数组为空的情况,剩下的场景必然是数组有元素,这样代码更简洁:
remove() { if (!this.arr.length) { return -1; } const firstItem = this.arr[0]; this.arr.splice(0, 1); return firstItem; }
内容的提问来源于stack exchange,提问作者Is-haq Adnan
相关产品推荐
相关产品推荐

