En JavaScript, un pseudo-tableau, également appelé objet de type tableau, est un objet de type tableau qui stocke les données selon un index et possède un attribut de longueur. Parce qu'il s'agit d'un objet, un pseudo-tableau n'a pas l'attribut de longueur. fonctions push() et forEach d'un tableau () et d'autres méthodes.
L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.
Pseudo-tableau (ArrayLike), également connu sous le nom de tableau. Est un objet de type tableau qui stocke les données en fonction de l'index et possède une propriété de longueur. Mais il présente les caractéristiques suivantes.
Stocker les données par index
0 : xxx, 1 : xxx, 2 : xxx...
0: xxx, 1: xxx, 2: xxx...
具有length
属性
但是length
length
maislength n'est pas dynamique et ne changera pas à mesure que les membres changent arrayLike.__proto__ === Object.prototype; //true arrayLike instanceof Object; //true arrayLike instanceof Array; //false
Exemple :
var arrLike = { 0: 'a', 1: 'b', 2: 'c', length: 3, } arrLike[1]; //'a' arrLike.length; //3 arrLike.push('d'); //Uncaught TypeError: arrLike.push is not a function
var arrLike = { 0: 'a', 1: 'b', 2: 'c', length: 3, };
1. Parcourez et ajoutez un tableau vide
var arr = []; for(var i = 0; i < arrLike.length; i++){ arr.push(arrLike[i]); }
2. Utilisez la méthode slice() du tableau [Recommandé]
;[].slice.call(arrLike);
Array.prototype.slice.apply(arrLike);
Par exemple, l'attribut de contexte dans le pseudo-tableau DOM obtenu par $() dans jQuery ne sera pas conservé après avoir été converti par cette méthode.
Simulez l'implémentation interne de slice()Array.prtotype.slice = function(start, end){ var result = new Array(); var start = start | 0; var end = end | this.length; for(var i = start; i < end; i++){ result.push(this[i]); } return result; }
3 Modifiez le pointeur du prototype
arrLike.__proto__ = Array.prototype;
4. Méthode Array.from() dans ES2015
var arr = Array.from(arrLike);
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!