基本上,如何在不使用 shift() 或 splice() 方法(或任何其他方法)的情况下返回并删除数组的第一个元素?
提前感谢!
"移位"方法背后的逻辑是什么?
规范中对此进行了全面描述。
基本上,如何在不使用 shift() 或 splice() 方法(或任何其他方法)的情况下返回并删除数组的第一个元素?
我看不出这种限制的任何充分理由,但是您可以使用循环手动为每个条目分配其上方的值(从末尾开始),直到要更改的索引,然后将数组的length
设置为少一个。模糊地像这样(我确定这不是shift
所做的事情的完整实现):
现场示例 |实时源码
var n;
for (n = theArray.length - 2; n >= removeAt; --n) {
theArray[n] = theArray[n+1];
}
--theArray.length;
更改数组的 length
属性将删除不再属于该长度的任何元素。
您还可以在不更改数组长度的情况下删除元素,使用 delete
:
delete theArray[removeAt];
数组的长度将保持不变,但它在该位置将不再有条目(根本没有)。它变得稀疏(如果还没有的话)。这是有效的,因为 delete
语句从对象中删除属性,而非类型化的 JavaScript 数组实际上只是对象。
我认为这就是你要找的。它设置第一个字母,然后添加字符串的其余部分,将 finalString 变量中的第一个字母替换为空字符串,然后返回保存在 firstLetter 变量中的第一个字母。
function remove(str){
let firstLetter = '';
let finalString = '';
for(let i = 0; i < str.length; i++){
if(i === 0){
firstLetter = str[i];
}
finalString += str[i];
if(i === 0){
finalString = '';
}
}
return firstLetter;
}
remove('hello');