first - ¿Por qué JavaScript no tiene un último método?
title case jquery (10)
Es un tanto extraño que la clase Array de JavaScript no ofrezca un último método para recuperar el último elemento de una matriz. Sé que la solución es simple (Ar [Ar.length-1]), pero, aún así, esto se usa con demasiada frecuencia.
¿Alguna razón seria por la cual esto aún no está incorporado?
Aquí hay otra forma más simple de cortar los últimos elementos
var tags = [1, 2, 3, "foo", "bar", "foobar", "barfoo"];
var lastObj = tags.slice(-1);
lastObj
ahora es ["barfoo"]
.
Python hace esto de la misma manera y cuando traté de usar JS, funcionó. Supongo que la manipulación de cadenas en lenguajes de scripting funciona de la misma manera.
Del mismo modo, si desea los últimos dos objetos en una matriz,
var lastTwoObj = tags.slice(-2)
te dará ["foobar", "barfoo"]
y así sucesivamente.
Es fácil definir uno usted mismo. Ese es el poder de JavaScript.
if(!Array.prototype.last) {
Array.prototype.last = function() {
return this[this.length - 1];
}
}
var arr = [1, 2, 5];
arr.last(); // 5
Sin embargo, esto puede causar problemas con el código de terceros que (incorrectamente) utiliza para los for..in
para iterar sobre las matrices.
Sin embargo, si no está vinculado con los problemas de soporte del navegador , entonces el uso de la nueva sintaxis de ES5 para definir las propiedades puede resolver ese problema, al hacer que la función no sea enumerable, así:
Object.defineProperty(Array.prototype, ''last'', {
enumerable: false,
configurable: true,
get: function() {
return this[this.length - 1];
},
set: undefined
});
var arr = [1, 2, 5];
arr.last; // 5
Otra opción, especialmente si ya está utilizando UnderscoreJS, sería:
_.last([1, 2, 3, 4]); // Will return 4
Porque Javascript cambia muy lentamente. Y eso es porque la gente actualiza los navegadores lentamente.
Muchas bibliotecas Javascript implementan su propia función last()
. ¡Usa uno!
Puedes hacer algo como esto:
[10, 20, 30, 40].slice(-1)[0]
La cantidad de métodos auxiliares que se pueden agregar a un idioma es infinita. Supongo que simplemente no han considerado agregar esta.
Sí, o simplemente:
var arr = [1, 2, 5];
arr.reverse()[0]
si quieres el valor, y no una nueva lista.
Vine aquí buscando una respuesta a esta pregunta yo mismo. La respuesta del sector es probablemente la mejor, pero seguí y creé una "última" función para practicar la extensión de prototipos, así que pensé que podría seguir adelante y compartirla. Tiene el beneficio adicional sobre otros que le permiten opcionalmente contar hacia atrás a través de la matriz y sacar, por ejemplo, la penúltima o la penúltima posición. Si no especifica un recuento, solo se predetermina a 1 y saca el último elemento.
Array.prototype.last = Array.prototype.last || function(count) {
count = count || 1;
var length = this.length;
if (count <= length) {
return this[length - count];
} else {
return null;
}
};
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.last(); // returns 9
arr.last(4); // returns 6
arr.last(9); // returns 1
arr.last(10); // returns null
i = [].concat(loves).pop(); //corn
icon cat ama las palomitas de maíz
pop()
método pop()
mostrará el último valor. Pero el problema es que perderá el último valor en la matriz
Array.prototype.last = Array.prototype.last || function() {
var l = this.length;
return this[l-1];
}
x = [1,2];
alert( x.last() )