¿Cuál es la diferencia entre los dos?
Entonces sé que array.size()
es una función mientras que array.length
es una propiedad. ¿Hay un caso de uso para usar uno sobre el otro? ¿Es uno más eficiente? (Me imagino .length
que es significativamente más rápido, ya que es una propiedad en lugar de una llamada a un método?) ¿Por qué uno usaría la opción más lenta? ¿Hay algunos navegadores que sean incompatibles con uno u otro?
var x = [];
console.log(x.size());
console.log(x.length);
console.log(x.size()==x.length);
x =[1,2,3];
console.log(x.size());
console.log(x.length);
console.log(x.size()==x.length);
Imprimirá:
0, 0, true
3, 3, true
javascript
arrays
Abraham P
fuente
fuente
Array.size()
método en JavaScript nativo?.size
....size()
es probable del marco del prototipoRespuestas:
Array.size () no es un método válido
Utilice siempre la propiedad de longitud
Hay una biblioteca o secuencia de comandos que agrega el método de tamaño al prototipo de matriz, ya que este no es un método de matriz nativo. Esto se hace comúnmente para agregar soporte para un getter personalizado. Un ejemplo de uso de esto sería cuando desee obtener el tamaño en la memoria de una matriz (que es lo único que se me ocurre que sería útil para este nombre).
Lamentablemente, Underscore.js define un
size
método que realmente devuelve la longitud de un objeto o matriz. Dado que, desafortunadamente, la propiedad de longitud de una función se define como el número de argumentos con nombre que la función declara que tenían que usar una alternativa y se eligió el tamaño (el conteo habría sido una mejor opción).fuente
.size()
no es una función nativa de JSArray
(al menos no en ningún navegador que yo sepa)..length
debe ser utilizadoSi
.size()
hace el trabajo en su página, asegúrese de que usted no tiene ninguna bibliotecas adicionales incluidos como prototipo que está limpiando con elArray
prototipo.o
Puede haber algún complemento en su navegador que esté alterando el
Array
prototipo.fuente
[].size
la consola. Si funciona, entonces tienes algún tipo de complemento de Chrome que está arruinando el prototipo de matriz, y estaría preocupado. :)La
.size()
función está disponible en Jquery y muchas otras bibliotecas.La
.length
propiedad funciona solo cuando el índice es un entero.La
length
propiedad será trabajar con este tipo de matriz:La
length
propiedad no funcionará con este tipo de matriz:Entonces, en su caso, debería estar usando la
.length
propiedad.fuente
pbook
anteriores, puede usar$(pbook).size();
[requiere jQuery].size()
es de jQuery, es muy probable que te confundas o que hayas tomado de otra persona que había importado la biblioteca de jQuery a su proyecto.Si hubiera importado jQuery y escribiera como
$(array).size()
, devolvería la longitud de la matriz.fuente
.size()
no solo es jqueryarray.length
no es necesariamente el número de elementos en la matriz:La longitud de la matriz es uno más que el índice más alto.
Como se indicó anteriormente,
Array.size()
no es un método válido.Más información
fuente
La propiedad 'length' devuelve (last_key + 1) para matrices con teclas numéricas:
imprimirá 12!
Esto funcionará:
fuente
El método .size () está en desuso a partir de jQuery 1.8. Utilice la propiedad .length en su lugar
Ver: https://api.jquery.com/size/
fuente
El tamaño detecta duplicados, devolverá el número de valores únicos
fuente
En realidad,
.size()
no es un método de JavaScript puro, hay una propiedad.size
de acceso del objeto Set que se parece un poco,.size()
pero no es un método de función, como dije, es una propiedad de acceso de un objeto Set para mostrar el número único de (únicos) elementos en un objeto Set.Y
length
es una propiedad de un objeto iterable (matriz) que devuelve el número de elementos en esa matriz. El valor es un entero de 32 bits sin signo que siempre es numéricamente mayor que el índice más alto de la matriz.fuente
podemos usar la propiedad .length para establecer o devolver el número de elementos en una matriz. el valor de retorno es un número
podemos. tamaño en caso de que necesitemos filtrar valores duplicados y obtener el recuento de elementos en un conjunto.
fuente