Maison  >  Article  >  interface Web  >  js, exemple d'opération de tableau, analyse

js, exemple d'opération de tableau, analyse

小云云
小云云original
2018-03-26 15:20:371379parcourir

Cet article partage principalement avec vous l'analyse d'exemples d'opérations de tableaux js, principalement sous forme de code, en espérant aider tout le monde.

shift : supprime le premier élément du tableau d'origine et renvoie la valeur de l'élément supprimé ; si le tableau est vide, renvoie undéfini

var a = [1,2,3,4,5];   
var b = a.shift(); //a:[2,3,4,5] b:1

unshift : ajoute des paramètres au début du tableau d'origine et renvoie la longueur du tableau

var a = [1,2,3,4,5];   
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7

Remarque : la valeur de retour du test sous IE6.0 est toujours indéfini, FF2.0 La valeur de retour du test suivant est 7, donc la valeur de retour de cette méthode n'est pas fiable Lorsque la valeur de retour est nécessaire, splice peut être utilisée à la place de cette méthode.

pop : supprime le dernier élément du tableau d'origine et renvoie la valeur de l'élément supprimé ; si le tableau est vide, il renvoie undéfini

var a = [1,2,3,4,5];   
var b = a.pop(); //a:[1,2,3,4] b:5

push : ajoute des paramètres à la fin du tableau d'origine et renvoie la longueur du tableau

var a = [1,2,3,4,5];   
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7

concat : renvoie un nouveau tableau, qui est composé de l'ajout de paramètres au tableau d'origine

var a = [1,2,3,4,5];   
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]

splice(start,deleteCount,val1,val2,...) : supprimez les éléments deleteCount de la position de départ et insérez val1, val2,... .

var a = [1,2,3,4,5];   
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4]   
var b = a.splice(0,1); //同shift   
a.splice(0,0,-2,-1); var b = a.length; //同unshift   
var b = a.splice(a.length-1,1); //同pop   
a.splice(a.length,0,6,7); var b = a.length; //同push

reverse : Inverser le tableau

var a = [1,2,3,4,5];   
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]

sort(orderfunction) : Trier le tableau en fonction aux paramètres spécifiés

var a = [1,2,3,4,5];   
var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]

slice(start,end) : renvoie un nouveau tableau composé d'éléments compris entre l'index de début spécifié et l'index de fin dans le tableau d'origine

var a = [1,2,3,4,5];   
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]

join(separator) : Combinez les éléments du tableau en une chaîne, en utilisant le séparateur comme séparateur. En cas d'omission, la virgule par défaut est utilisée comme séparateur

<.>
var a = [1,2,3,4,5];   
var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"

Array est un objet interne fourni par JavaScript. C'est une collection standard. Nous pouvons y ajouter (pousser) et supprimer (déplacer) des éléments. Nous pouvons également parcourir les éléments via une boucle for. . Donc, en plus du tableau, pouvons-nous avoir d'autres collections en JavaScript ?

En raison des fonctionnalités du langage JavaScript, nous pouvons ajouter et supprimer dynamiquement des propriétés aux objets généraux. Ainsi, Object peut également être considéré comme une collection spéciale de JS. Comparons les caractéristiques du tableau et de l'objet :

  //Array:  
  
/*新建:*/var ary = new Array(); 或 var ary = [];   
/*增加:*/ary.push(value);   
/*删除:*/delete ary[n];   
/*遍历:*/for ( var i=0 ; i < ary.length ; ++i ) ary[i];  
  
  //Object:  
  
/*新建:*/var obj = new Object(); 或 var obj = {};   
/*增加:*/obj[key] = value; (key为string)   
/*删除:*/delete obj[key];   
/*遍历:*/for ( var key in obj ) obj[key];

D'après la comparaison ci-dessus, nous pouvons voir que l'objet peut être utilisé comme une collection, et vous pouvez utiliser le Popup fenêtre pour créer des niveaux infinis. Dans le menu de la page Web (3), j'ai introduit le __MenuCache__ implémenté par Eric, qui est également un objet de collection simulé.

Si nous voulons récupérer une valeur spécifiée dans Array, nous devons parcourir l'ensemble du tableau :

var keyword = ;   
  for ( var i=0 ; i < ary.length ; ++i )   
  {   
  if ( ary[i] == keyword )   
  {   
  // todo   
  }   
  }

Et Pour récupérer une entrée avec une clé spécifiée dans Object, il suffit d'utiliser :

var key = &#39;&#39;;   
  var value = obj[key];   
  // todo

 Object的这个特性可以用来高效的检索Unique的字符串集合,遍历Array的时间复杂度是O(n),而遍历Object的时间复杂度是O(1)。虽然对于10000次集合的for检索代价也就几十ms,可是如果是1000*1000次检索或更多,使用Object的优势一下就体现出来了。在此之前我做了一个mapping,把100个Unique的字符mapping到1000个字符串数组上,耗时25-30s!后来把for遍历改成了Object模拟的集合的成员引用,同样的数据量mapping,耗时仅1.7-2s!!! 
对于集合的遍历效率(从高到低):var value = obj[key]; > for ( ; ; ) > for ( in )。效率最差的就是for( in )了,如果集合过大,尽量不要使用for ( in )遍历。

相关推荐:

JS数组去重方法总结

js数组常用的一些排序法

JS数组添加元素方法总结

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn