Maison >interface Web >js tutoriel >Expansion et réparation de tableaux de notes de lecture dans le framework javascript compétences design_javascript
Méthodes 1.indexOf et lastIndexOf :
Étant donné qu'IE7 signalera une erreur lors de l'utilisation de indexOf sur un objet tableau, il doit être réécrit pour des raisons de compatibilité.
Méthode 2.shuffle : mélangez le tableau.
3. Aplatissement des tableaux : aplatir, renvoyant un tableau unidimensionnel
4.méthode unique : opération de déduplication sur baie
Les enquêteurs aiment le plus poser des questions sur cette méthode, car elle comporte de nombreuses méthodes de mise en œuvre, la plus courante étant deux boucles for. La chose la plus connue est d'utiliser un objet a, puis un tableau de boucles for arr. Chaque fois que si (a[arr[i]]) existe, s'il n'existe pas, il sera poussé vers le résultat de votre tableau nouvellement défini. . L'existence est prouvée et répétée, il n'est donc pas nécessaire de la pousser au résultat. Dans ce schéma, "123" et 123 seront considérés comme identiques. En fait, l'un est une chaîne et l'autre un nombre, ils ne doivent donc pas être considérés comme identiques.
La méthode suivante apparaît donc : [1,"1","1"]
//Déterminez d'abord si les types sont identiques. S'ils sont identiques, déterminez si leurs valeurs sont égales. S'ils ne sont pas égaux, enregistrez-les. S'ils sont égaux, cela prouve que la valeur existe déjà. avant.
Si les types ne sont pas les mêmes, il y a deux situations,
Dans le premier cas, obj a déjà stocké ces données auparavant, par exemple : obj[123] = 123, maintenant array[i] = "123", à ce moment, typeof obj[array[i]]) est un nombre et typeof array[i] est une chaîne, elle est donc stockée dans le tableau.
Le deuxième cas est que obj n'a pas enregistré ces données, par exemple : array[i] = "123", obj["123"] = undefind, alors typeof obj[array[i]]) est typeof undefined = indéfini, différent du type de tableau[i], stocké dans le tableau.
Cette méthode peut résoudre le cas où les chaînes et les nombres sont identiques, mais elle ne peut pas résoudre le cas où les objets sont identiques. Par exemple : a = {1:2}, b ={2:1};
La première fois dans la boucle, typeof obj[a] = undefined, typeof a = Object. Stocker obj[a] = a. En fait, c'est obj[Object] = a;
.Dans la deuxième boucle, typeof obj[b] est égal à typeof obj[Object], qui est en fait typeof a = object, typeof b = object Par conséquent, il entre obj[array[i]] != array[. i]|, c'est-à-dire obj[b]->obj[Object]->a ! = b, alors déposez
obj[b] = b; c'est-à-dire obj[Object] = b; couvrant l'obj[Object] = a;
Dans ce cas, tous les objets n'auront que la dernière valeur d'objet stockée.
Lorsque je pense aux objets, j'utilise cette approche :
6.min renvoie la valeur minimale du tableau : return Math.min.apply(0,array);
7.unshift ne renvoie pas la longueur du tableau sous ie6 et 7.
Il y a quelque chose à noter ici :
.