我有一个数组:
array = ['mario','luigi','kong']
array.splice(1) //-> ['luigi','kong']
我只是想知道是否有一个类似于拼接的功能来删除索引后的所有项目:
伪代码
array.mirrorsplice(1) //-> ['mario','luigi']
解决方法
使用.length为数组设置一个新的大小,这比splice()要快于mutate:
var array = ['mario','kong',1,3,6,8]; array.length=2; alert(array); // shows "mario,luigi";
为什么会更快?因为.splice()必须创建一个包含所有已删除项目的新数组,而.length不创建任何内容,而是返回一个数字而不是新的数组.
要解决splice()使用情况,您可以为其提供一个负数索引,以及一个巨大的数字来截取数组的结尾:
var array = ['mario','kong']; array.splice(-1,9e9); alert(array); // shows "mario,luigi";