删除索引后的所有项目
Remove all items after an index
我有一个数组:
array = ['mario','luigi','kong']
我调用其拼接函数来删除索引前的所有项目:
array.splice(1) //-> ['luigi','kong']
我只是想知道是否有类似于拼接的功能来删除索引后的所有项目:
伪代码
array.mirrorsplice(1) //-> ['mario','luigi']
使用Array.length
为数组设置新的大小,这比Array.splice
更快地进行变异:
var array = ['mario','luigi','kong', 1, 3, 6, 8];
array.length=2;
alert(array); // shows "mario,luigi";
为什么它更快?因为.splice
必须创建一个包含所有删除项的新数组,而.length
不创建任何内容,而是"返回"一个数字而不是一个新数组。
为了解决.splice
的使用问题,你可以给它一个负索引,以及一个巨大的数字来截断数组的末尾:
var array = ['mario','luigi','kong'];
array.splice(-1, 9e9);
alert(array); // shows "mario,luigi";
尽管为数组长度指定一个较短的值(正如@dandavis所说)是从数组中删除尾部元素的最快、最简单的方法,但您也可以使用类似的方法(如splice,即slice)来完成这一操作。如下所示:
array = ['mario', 'luigi', 'kong'];
array = array.slice(0, 2); //Need to assign it to the same or another variable
console.log(array); //["mario", "luigi"]
正如您所看到的,您需要存储slice
方法返回的值。为了理解"为什么",以下是slice
和splice
方法之间的主要区别:
splice()
方法返回数组中删除的项,slice()
方法返回数组的选定元素作为新的数组对象splice()
方法更改原始数组,而slice()
方法不更改原始数组
要删除索引后的所有项目:
var array = ['mario','luigi','kong'],
index = 1; // your index here
array = array.splice(index + 1, array.length - (index + 1) );
// 3 - (1+1) = 1
// 1 is the remaining number of element(s) in array
// hence, splice 1 after index
结果:
['mario', 'luigi']
您需要+1,因为拼接开始在索引处删除。
我认为您误解了Array.prototype.splice()
的用法。它已经完成了您的要求(删除索引后的所有内容,请阅读下面的段落进行更正),并且它确实返回了删除的值。我认为您将返回的值与数组的当前值混淆了。
然而,Array.prototype.splice()
也删除了提供的索引值,这基本上等同于设置数组的长度。因此,如果您将其称为array.splice(2)
,它将把长度设置为2,并且包括索引2及其后的值在内的所有内容都将被删除。假设阵列的当前长度大于提供给CCD_ 16的第一参数。
例如:
const array = ['mario','luigi','kong'];
const deletedItem = array.splice(1);
console.log(array); // ['mario']
console.log(deletedItem); // ['luigi','kong']
有关更多信息:请参阅MDN文档。
您可以使用splice。这是一个演示。
var array = ['mario','luigi','kong']
删除索引后的所有元素:
var removedElement = array.splice(index, array.length)
removedElement将从数组中删除元素列表。
示例:
let index = 2;
var removedElement = array.splice(2, array.length);
removedElement = ["kong"];
array = ["mario", "luigi"];
您可以使用.slice来实现这一点。
示例(从数组中删除除前1000个条目外的所有条目):
originalArray = originalArray.slice(0, 1000)
- 当索引页面上的项目单击时发布 ajax
- 查找数组中项目包含子字符串的索引
- 语义 UI 手风琴获取打开事件中打开的项目的索引
- 我可以按索引而不是名称引用ngRepeat中的项目吗
- 猫头鹰旋转木马2从具有特定内容的元素接收项目索引
- 将 JavaScript 数组中的项目放在任意索引上
- 将数字存储在数组中会混淆如何根据值而不是索引来操作这些项目
- 下划线.js - OO:在索引处获取项目?有没有更好的JS库来做到这一点
- 如何在索引视图中的Ruby on Rails中使用JavaScript切换项目的状态
- 使用 jQuery 将项目附加到列表中,但如果使用 Javascript 的项目相同,则使用索引
- 获取新推送项目的索引
- 尝试使用PHP / Javascript构建一个可点击的索引,该索引显示单击的每个项目的数据
- 如何使用 Javascript 将迭代器索引号附加到数组中的每个项目
- 将两个数组中的项目合并到第三个数组中,其中一列从第一个数组中减去第二个索引
- 在ng-options中,是否可以使用“(索引,项目)在vm.items”语法中进行预选
- 如何通过限制和降序创建At获取返回的项目索引
- 删除索引后的所有项目
- 在javascript中使用过滤器时获取项目索引
- 显示在<选择>框中的项目索引
- 使用项目索引的单元测试数组