Matriz.tamanho () vs matriz.comprimento

Qual é a diferença entre os dois?

Então eu sei que array.size() é uma função enquanto array.length é uma propriedade. Existe um uso para usar um em vez do outro? Será mais eficiente (imagino que .length ser significativamente mais rápido, pois é uma propriedade, em vez de uma chamada de método?) Por que alguém usaria a opção mais lenta? Existem alguns navegadores que são incompatíveis com um ou outro?

  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);

irá imprimir:

  0, 0, true
  3, 3, true
Author: Abraham P, 2013-01-07

6 answers

Matriz.o size () não é um método válido

Usar sempre a propriedade do comprimento

Existe uma biblioteca ou script que adiciona o método do tamanho ao protótipo do array, uma vez que este não é um método de array nativo. Isto é geralmente feito para adicionar suporte para um getter personalizado. Um exemplo de usar isso seria quando você quer obter o tamanho em memória de um array (que é a única coisa que eu posso pensar que seria útil para este nome).

Sublinhado.infelizmente, o js define um size método que devolve de facto o comprimento de um objecto ou matriz. Desde que, infelizmente, a propriedade length de uma função é definida como o número de argumentos nomeados a função declara que tiveram que usar uma alternativa e tamanho foi escolhido (contagem teria sido uma melhor escolha).

 461
Author: Gabriel, 2014-01-14 00:28:09

.size() is not a native JS function of Array (at least not in any browser that I know of).

.length should be used.


Se

.size() faz trabalhe na sua página, certifique-se de que não tem bibliotecas extras incluídas como protótipo que está a estragar com o protótipo Array.

Ou

Pode haver algum plugin no seu navegador que está a estragar com o protótipo Array.

 140
Author: Neal, 2013-01-07 19:33:15

.size() está em Jquery e muitas outras bibliotecas.

.length só funciona quando a chave é número . o comprimento não funciona com teclas de caracteres

.length trabalhar bem para este tipo de array

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

.length não funciona como este array

 var  pbook  =  new  Array (); 
   pbook [ "David" ]  =  1 ; 
   pbook [ "Jennifer" ]  =  2 ;
   print ( pbook . length );  // displays 0
 24
Author: Saurabh Chandra Patel, 2018-08-08 12:18:06

.size() é do jQuery, muito provavelmente você está confundindo com ou tirou de alguém que tinha importado a biblioteca jQuery para o seu projeto.

Se você tivessejQuery importado e você escrevesse como $(array).size(), ele devolveria o comprimento da matriz.

 19
Author: Julio Flores, 2014-11-19 09:43:28

array.length não é necessariamente o número de itens na matriz:

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

O comprimento da matriz é um a mais do que o índice mais alto.

Tal como indicado antes Array.size() não é um método válido.

Mais informações

 11
Author: user2811108, 2017-10-26 13:23:25

O .o método size() é obsoleto em Jquery 1.8. Usa o .propriedade do comprimento em vez de

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

 1
Author: Davy, 2018-07-21 12:10:11