


Quelques comportements étranges des astuces JavaScript arrays_javascript
L'importance des tableaux dans les langages de programmation va de soi. Les tableaux en JavaScript sont également l'un des objets les plus couramment utilisés. Les tableaux sont des collections ordonnées de valeurs. En raison de la faiblesse des types, les tableaux en JavaScript sont très flexibles et puissants. Contrairement aux tableaux dans les langages de haut niveau fortement typés tels que Java, qui ne peuvent stocker que des éléments du même type ou ses sous-types, JavaScript peut stocker plusieurs types d'éléments dans le même tableau, et la longueur peut également être ajustée dynamiquement. à mesure que les données augmentent ou réduisez les modifications automatiques de la longueur du tableau.
Aujourd'hui, j'ai examiné les tableaux JavaScript, puis j'ai résumé certains de ses comportements étranges. Je les partagerai avec vous ici. S'il y a des erreurs, veuillez les signaler !
Étrange 1 : La fonction constructeur Array() peut être appelée sans utiliser le mot-clé new :
Le constructeur Array() utilise les paramètres qui lui sont passés comme éléments du tableau pour créer un tableau. Généralement, on l'appelle ainsi :
var a = new Array(1, 2, "bom!"); a.length; //3 console.log(a); //[1, 2, "bom!"]
Cependant, il est également possible d'omettre du nouveau, comme suit :
var a = Array(1, 2, "bom!"); a.length; //3 console.log(a); //[1, 2, "bom!"]
Bien que je ne sache pas quel est son mécanisme de mise en œuvre interne, je suppose que sa fonction constructeur peut être définie comme suit :
function Array(args) { //如果,this不是Array的实例的话, //说明不是通过new调用的,则在这里再重新调用 if( !this instanceof Array) { return new Array(args); }//后面是正常调用时的实现代码<br />//...<br />}
Étrange 2 : Lorsqu'un seul paramètre est passé au constructeur, le comportement est imprévisible
Si un seul paramètre est passé, et que ce paramètre est un entier, un tableau sera obtenu, et la longueur est égale à ce paramètre
var a = new Array(12); console.log(a.length); //12 console.log(a); //[]
Si vous ne transmettez qu'un nombre à virgule flottante, une erreur sera signalée :
var a = new Array(1.1); //Uncaught RangeError: Invalid array length(…)
Passer une chaîne fonctionnera correctement, avec la chaîne comme premier élément du tableau :
var a = new Array("1.1"); console.log(a.length); // console.log(a); //["1.1"]
Mais afin d'éviter toute ambiguïté, je suggère qu'il est préférable de créer le tableau directement sous forme de littéraux :
var a = []; //空数组 var a = [1, 1, "bom"]; //三个元素 var a = [12]; //一个元素,并且元素是12
Étrange 3 : L'attribut length du tableau peut être modifié (inscriptible)
Comme suit, nous avons directement changé la longueur de 2 à 100, et la modification a réussi ! ! !
var a = [1, 2, 3, 4]; console.log(a.length); //4 a.length = 100; console.log(a.length); //100
Bien que la longueur soit égale à 100, les éléments a[4]-a[99] n'existent pas, et si vous demandez leurs valeurs, par exemple, faites-le dans une boucle de 0 à a.length, alors ils deviendront indéfinis .
Regarder ensuite :
var a = [1, 2, 3, 4]; a.length = 100; console.log(a[10]); //undefined console.log(99 in a); //false
Un peu similaire à l'exemple ci-dessous :
var a = [1, 2, 3, 4]; a[99] = undefined; console.log(a.length); //100
La différence est que a[99] existe ici parce que nous l'avons créé, même s'il a une valeur indéfinie. Mais tous les éléments de a[4] à a[98] n'existent pas, comme suit :
var a = [1, 2, 3, 4]; a[99] = undefined; console.log(99 in a); //true; console.log(98 in a); //false console.log(a.length); //100
Ce qui précède a partagé avec vous quelques comportements étranges des tableaux JavaScript. Veuillez me pardonner si l'article n'est pas bien écrit, merci !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Méthode : 1. Utilisez shift() pour supprimer le premier élément, la syntaxe est "array.shift()" ; 2. Utilisez pop() pour supprimer le dernier élément, la syntaxe est "array.pop()" ; Utilisez splice() pour supprimer des éléments à n'importe quelle position, la syntaxe est "array.splice(position, number)" 4. Utilisez length pour supprimer les N derniers éléments, la syntaxe est "array.length=original array length-N" ; ; 5. Attribuez directement le tableau vide "[ ]" pour effacer l'élément ; 6. Utilisez delete pour supprimer un élément à l'indice spécifié.

3 méthodes de conversion : 1. Utilisez split() pour diviser une chaîne donnée en un tableau de chaînes, la syntaxe est "str.split (séparateur, longueur maximale du tableau)" 2. Utilisez l'opérateur d'expansion "...", itérable ; objet chaîne, convertissez-le en tableau de caractères, la syntaxe "[...str]"; 3. Utilisez Array.from() pour convertir la chaîne en tableau, la syntaxe "Array.from(str)".

Obtenir la longueur d'un tableau en JS est très simple. Chaque tableau a une propriété de longueur, qui renvoie la longueur maximale du tableau, c'est-à-dire que sa valeur est égale à la valeur d'indice maximale plus 1. Puisque les indices numériques doivent être inférieurs à 2^32-1, la valeur maximale de l'attribut de longueur est égale à 2^32-1. Le code suivant définit un tableau vide, puis attribue une valeur à l'élément avec l'index égal à 100, puis la propriété length renvoie 101. Par conséquent, l’attribut length ne peut pas refléter le nombre réel d’éléments du tableau.

Le tableau js peut être converti en tableau php. La méthode d'opération est la suivante : 1. Créez un exemple de fichier php ; 2. Utilisez la syntaxe "JSON.stringify()" pour convertir le tableau js en une chaîne au format JSON ; Utilisez la syntaxe "json_decode()" "Convertissez la chaîne au format JSON en tableau PHP. Le paramètre true est ajouté ici, ce qui signifie que la chaîne au format JSON est convertie en tableau associatif PHP.

Il existe 4 façons de supprimer un élément d'un tableau js, à savoir : 1. Utilisez splice ; 2. Utilisez filter 3. Utilisez la méthode pop et shift ;

La méthode Array.prototype.sort() de JavaScript est utilisée pour trier les éléments d'un tableau. Cette méthode trie sur place, c'est-à-dire qu'elle modifie le tableau d'origine plutôt que de renvoyer un nouveau tableau trié. Par défaut, la méthode sort() trie les chaînes en fonction de leurs valeurs de points de code Unicode. Cela signifie qu'il est principalement utilisé pour trier des chaînes et des nombres, plutôt que pour trier des objets ou d'autres types de données complexes.

En JavaScript, vous pouvez utiliser l'attribut length pour obtenir la longueur du tableau, la syntaxe est "array object.length" ; vous pouvez utiliser la fonction réduire() ou réduireRight() pour trouver la somme des éléments, la syntaxe est " arr.reduce(function f(pre,curr){ return pre+cur})" ou "arr.reduceRight(function f(pre,curr){return pre+cur})".

Dans le développement Web, étant donné que JavaScript (JS) et PHP sont les deux langages de programmation les plus couramment utilisés, les tableaux sont inévitables dans le processus de développement. En réponse à cette situation, nous devons souvent convertir des tableaux JS en tableaux PHP. Il existe de nombreuses façons de réaliser cette fonction, et elles seront présentées une par une ci-dessous.
