当前位置:  开发笔记 > 编程语言 > 正文

为什么不从Javascript数组中删除更改其长度?

如何解决《为什么不从Javascript数组中删除更改其长度?》经验,为你挑选了4个好方法。

我有一个数组:

data.Dealer.car[0]
data.Dealer.car[1]
data.Dealer.car[2]

如果我这样做:

alert(data.Dealer.car.length);
delete data.Dealer.car[1];
alert(data.Dealer.car.length);

它每次都给我相同的数量.删除的元素是否仍然存在?



1> Gumbo..:

如果要删除项目,请使用以下splice方法:

alert(data.Dealer.car.length);
data.Dealer.car.splice(1, 1);
alert(data.Dealer.car.length);

但请注意,指数已发生变化.



2> Ray Hidayat..:

JavaScript数组不稀疏,如果你有一个0和一个2,那么元素1必须存在.意思length是将会是3.


是的,JavaScript数组实际上可能很稀疏.

3> Jeremy Frenc..:

Array.shift()将从数组中删除第一个项目并使其更短.Array.pop()将删除最后一项.



4> zedd45..:

以@Ray Hidayat发布的内容为基础:

JavaScript数组稀疏.如果你有一个长度为3的数组,删除[1]处的引用将只是"取消设置"该项,而不是从数组中删除它,或者更新该数组的长度.你可以完成同样的事情

myArray = [0, , 2, , , , ];  // length 6; last three items undefined

这是一个小提琴:http: //jsfiddle.net/WYKDz/

注意:从大型数组中间删除项目可能是计算密集型的.有关更多信息,请参阅此文章: 从Array中间删除一个条目的最快方法()


@DaraJavaherian:这就是稀疏的意思.(不是吗?至少说出你对它的定义是什么......)
推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有