jQuery等同于Prototype array.last()

时间:2009-07-21 15:33:32

标签: jquery arrays

原型:

var array = [1,2,3,4];
var lastEl = array.last();

在jQuery中有类似的东西吗?

12 个答案:

答案 0 :(得分:132)

为什么不使用简单的javascript?

var array=[1,2,3,4];
var lastEl = array[array.length-1];

如果您愿意,也可以将其编写为方法(假设原型未包含在您的页面中):

Array.prototype.last = function() {return this[this.length-1];}

答案 1 :(得分:75)

with slice():

var a = [1,2,3,4];
var lastEl = a.slice(-1)[0]; // 4
// a is still [1,2,3,4]

使用pop();

var a = [1,2,3,4];
var lastEl = a.pop(); // 4
// a is now [1,2,3]

有关详细信息,请参阅https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array

答案 2 :(得分:21)

在处理jQuery对象时,.last()会这样做,将匹配的元素过滤到集合中的最后一个。

当然,你可以使用jQuery包装一个原生数组:

var a = [1,2,3,4];
var lastEl = $(a).last()[0];

答案 3 :(得分:11)

为什么不使用get函数?

var a = [1,2,3,4];
var last = $(a).get(-1);

http://api.jquery.com/get/更多信息

修改 正如DelightedD0D所指出的,根据jQuery的文档,这不是正确的函数,但它仍然提供了正确的结果。我建议使用Salty的答案来保持代码的正确性。

答案 4 :(得分:2)

如果您在数组上使用原型,请执行以下操作:

Array.prototype.last = function() {return this[this.length-1];}

使用forloops可以做到这一点。

var a = [0,1,2];
out --> 0
out --> 1
out --> 2
out --> last

答案 5 :(得分:2)

我知道已经给出了答案,但我想我已经有了另一个解决方案。 您可以获取数组,反转它并输出第一个数组项,如下所示:

var a = [1,2,3,4];
var lastItem = a.reverse()[0];

对我来说很好。

答案 6 :(得分:1)

对于数组,您只需使用array.length - 1检索最后一个元素位置:

var a = [1,2,3,4];

var lastEl = a[a.length-1]; // 4

在jQuery中你有:last选择器,但这对普通数组没有帮助。

答案 7 :(得分:1)

根据 jsPerf: Last item method ,效果最佳的方法是array[array.length-1]。该图表显示每秒操作数,而不是每次操作的时间。

开发人员认为单个操作的性能很重要是常见的(但错误的)。它不是。性能仅在您进行大量相同操作时才有意义。在这种情况下,使用静态值(length)来访问特定索引(length-1)的速度最快,而且它甚至都不接近。

答案 8 :(得分:0)

查看这些测试用例http://jsperf.com/last-item-method 最有效的方法是通过.pop方法(在V8中),但丢失了数组的最后一个元素

答案 9 :(得分:0)

SugarJS

它不是jQuery,而是除了jQuery之外你可能会觉得有用的另一个库:试试SugarJS

  

Sugar是一个Javascript库,它使用有用的方法扩展本机对象。它设计直观,不引人注目,让您可以用更少的代码完成更多工作。

使用SugarJS,您可以:

import logging, logging.handlers

# Logging to a file done here
rootLogger = logging.getLogger()
loggingHandler = logging.FileHandler (LOG_FILE)
loggingFormatter = logging.Formatter ('%(asctime)s %(levelname)s %(name)s %(message)s')
loggingHandler.setFormatter (loggingFormatter)
rootLogger.setLevel (logging.DEBUG)
rootLogger.addHandler (loggingHandler)

# Logging to email of any errors
emailHandler = logging.handlers.SMTPHandler ("localhost", "me@localhost", ["me@awesome.edu"], "Backup Error")
emailHandler.setFormatter (loggingFormatter)
emailHandler.setLevel (logging.ERROR)
rootLogger.addHandler (emailHandler)

这意味着,您的示例可以开箱即用:

[1,2,3,4].last()    //  => 4

更多信息

答案 10 :(得分:0)

url:www.mydomain.com/user1/1234

$。params = window.location.href.split(“/”); $ .params [$ params.length-1。];

您可以根据查询字符串分隔符进行拆分

答案 11 :(得分:-1)

我用这个:

array.reverse()[0]

使用reverse()反转数组,然后用[0]选择反转版本的第一项,即原始数组的最后一项。

如果你不关心数组当然是颠倒的话,你可以使用这段代码,因为它会保持不变。