Matriz.tamanho () vs matriz.comprimento
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
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).
.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
.
.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
.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.
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.
O .o método size() é obsoleto em Jquery 1.8. Usa o .propriedade do comprimento em vez de