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 ?
//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é.
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 = ''; 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 )遍历。
相关推荐:
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!