从数组JavaScript中删除并返回最后n个项的最快方法
Fastest way to delete and return last n items from an array JavaScript
如果我在JavaScript中有一个数组,我如何从中删除最后n项并将其作为新数组返回?
我有两个选项,拼接或迭代弹出/推送。哪个更好?
感谢
您应该拼接它:
array.splice(array.length-n, array.length);
因此:
function removeLast(arr, n){
arr.splice(arr.length-n, arr.length);
return arr;
}
arr = JSON.parse(prompt("Enter the array"));
n = parseInt(prompt("Enter the number of elements you want to remove"), 10);
alert(removeLast(arr, n));
> removeLast([1, 2, 3, 4, 5], 3)
[1, 2]
> removeLast([1, 2, 3, 4, 5], 2)
[1, 2, 3]
> removeLast([1, 2, 3, 4, 5], 1)
[1, 2, 3, 4]
为了好玩,我做了一个快速的jsperf测试来比较的两种方法
http://jsperf.com/splicevspop
拼接明显更快
相关文章:
- 从数组JavaScript中删除并返回最后n个项的最快方法
- async.js在使用瀑布方法时返回最后一个值
- 获取字符串中最后一个换行符的最有效方法是什么
- 在JavaScript数组中查找最后一个元素的计算效率最高的方法
- jQuery slice() 方法 在 html 中选择元素(第一个/最后一个)
- 对最后一个条目进行特殊处理的连接字符串的最简单方法
- 将最后一个元素移动到数组中的第二个项目的最快方法
- 从完整的HTML页面jQuery中删除最后一个表的方法
- infowindow.setContent 方法仅显示最后一个帐户名
- Javascript/Jquery:在嵌套数组中查找具有键值对的第一个和最后一个数组的索引的最有效方法
- 检查coffeescript中最后一个元素的更好方法
- 什么'即使在浏览器关闭后,打开最后一个打开的页面也是最好的方法
- 如果在已经是最后一个元素上调用jQuery.next方法,那么它会返回什么
- 使用async方法在数组中循环只获取angular 2中的最后一个元素(ecma6)
- JavaScript splice()方法如果splice()的第一个参数为-1,则删除数组的最后一项
- 更有效的方法来删除第一个和最后一个对象
- 是否存在检测最后一次导航事件是否由后退或前进浏览器按钮引起的方法
- 使用单个画布,我用javascript绘制了两个不同的图表,是否有任何方法可以在画布中删除最后绘制的图表
- 映射方法对除最后一个数组项外的所有数组项生效
- 在javascript中按类名获取最后一个元素的最短方法