Basically, how do you return AND remove the first element of an array WITHOUT using the shift() OR splice() methods(or any other methods for that matter)?
thanks in advance!
Basically, how do you return AND remove the first element of an array WITHOUT using the shift() OR splice() methods(or any other methods for that matter)?
thanks in advance!
“shift”方法背后的逻辑是什么?
它在规范中有完整的描述。
基本上,如何在不使用 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');