remove recorrer objetos ejemplos asociativo array javascript arrays

javascript - recorrer - Array.size() vs Array.length



javascript array methods (7)

¿Cuál es la diferencia entre los dos?

Así que 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 que .length 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 son 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);

Se imprimirá:

0, 0, true 3, 3, true


Array.size () no es un método válido

Siempre usa la propiedad de longitud

Hay una biblioteca o script 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 desea obtener el tamaño en la memoria de una matriz (que es lo único en lo que puedo pensar que sería útil para este nombre).

Underscore.js desafortunadamente define un método de size que en realidad 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, la función declara que tuvo que usar una alternativa y se eligió el tamaño (el recuento hubiera sido una mejor opción).


El método .size () está en desuso a partir de jQuery 1.8. Utilice la propiedad .length en su lugar

Consulte: https://api.jquery.com/size/


La propiedad ''length'' devuelve la (última_clave + 1) para las matrices con teclas numéricas:

var nums = new Array (); nums [ 10 ] = 10 ; nums [ 11 ] = 11 ; log.info( nums.length );

imprimirá 12!

Esto funcionará:

var nums = new Array (); nums [ 10 ] = 10 ; nums [ 11 ] = 11 ; nums [ 12 ] = 12 ; log.info( nums.length + '' / ''+ Object.keys(nums).length );


.size() no es una función JS nativa de Array (al menos no en ningún navegador que yo sepa).

.length debe utilizar .length .

Si

.size() funciona en tu página, asegúrate de no tener bibliotecas adicionales incluidas como prototypejs.org/doc/latest/language/Array/prototype/size que se esté deshaciendo del prototipo Array .

o

Es posible que haya algún complemento en su navegador que esté mal con el prototipo Array .


.size() es jQuery''s, es muy probable que estés confundido o .size() de otra persona que haya importado la biblioteca jQuery a su proyecto.

Si importara jQuery y escribiera como $(array).size() , devolvería la longitud del array.


.size() está en Jquery y en muchas otras bibliotecas.

.length funciona solo cuando la clave es número. la longitud no funciona con teclas de cadena

.length funciona bien para este tipo de matriz

var nums = new Array (); nums [ 0 ] = 1 ; nums [ 1 ] = 2 ; print ( nums . length ); // displays 2

.length no funciona como esta matriz

var pbook = new Array (); pbook [ "David" ] = 1 ; pbook [ "Jennifer" ] = 2 ; print ( pbook . length ); // displays 0


array.length no es necesariamente el número de elementos en la matriz:

var a = [''car1'', ''car2'', ''car3'']; a[100] = ''car100''; a.length; // 101

La longitud de la matriz es una más que el índice más alto.

Como se indicó antes, Array.size() no es un método válido.

Más información