use*_*523 4 javascript arrays shift
基本上,如何返回并删除数组的第一个元素而不使用shift()或splice()方法(或任何其他方法)?
提前致谢!
"转变"方法背后的逻辑是什么?
它在规范中有详细描述.
基本上,如何返回并删除数组的第一个元素而不使用shift()或splice()方法(或任何其他方法)?
我看不到任何好的理由这样的限制,但你可以使用一个循环来手动指定每个条目的一个上面的值(末开始),直到你想改变索引,然后设置length的数组减少一个.有点模糊的东西(我确信这不是完整的实现shift):
var n;
for (n = theArray.length - 2; n >= removeAt; --n) {
theArray[n] = theArray[n+1];
}
--theArray.length;
Run Code Online (Sandbox Code Playgroud)
更改length数组的属性将删除任何不再长度的元素.
您还可以使用以下方法删除元素而不更改数组的长度delete:
delete theArray[removeAt];
Run Code Online (Sandbox Code Playgroud)
数组的长度将保持不变,但在该位置将不再有条目(根本没有).它变得稀疏(如果它还没有).这是有效的,因为该delete语句从对象中删除属性,而无类型的JavaScript数组实际上只是对象.
| 归档时间: |
|
| 查看次数: |
562 次 |
| 最近记录: |