Maison >interface Web >js tutoriel >Méthode JS pour convertir des objets non-tableaux en tableaux
Cet article vous présente principalement certaines méthodes de conversion JS d'objets non-tableaux en tableaux, à savoir Array.prototype.slice.call(obj), Array.from(obj), [...obj] et Object. valeurs (obj) et d'autres méthodes, les amis dans le besoin peuvent s'y référer, j'espère que cela pourra aider tout le monde.
Array.prototype.slice.call(obj)
Cette méthode peut convertir un objet de type tableau en tableau, la soi-disant classe Un objet tableau est un objet contenant des attributs de longueur et d'index
La longueur du tableau renvoyée dépend de la valeur de l'attribut de longueur de l'objet et de la valeur d'un attribut non-index, ou d'une valeur avec un index supérieur à la longueur ne sera pas renvoyé au tableau
Le marteau réel est le suivant
let obj = { '0': 3, '1': 13, '2': 23, '3': 33, 'length': 3, 'name': 330 } let arr = Array.prototype.slice.call(obj) // [3, 13, 23]
Écriture concise [].slice.call(obj)
Array.from(obj)
Le retour est un objet itérable mais pas un tableaudocument.getElementsByTagName("p")
renvoie falseArray.isArray(document.getElementsByTagName('p'))
let obj = { '0': 3, '1': 13, '2': 23, '3': 33 } function *createIterator(obj){ for(let value in obj){ yield obj[value] } } let iterator = createIterator(obj) let arr = Array.from(iterator) // [3, 13, 23, 33]Transformer l'objet lui-même pour en faire un objet itérable Par défaut, les objets définis par le développeur sont des objets non itérables, mais si vous ajoutez un générateur à l'attribut
, vous pouvez le rendre itérable.Symbol.iterator
.
let obj = { '0': 3, '1': 13, '2': 23, '3': 33 } obj[Symbol.iterator] = function* () { for(let value in this){ yield this[value] } } let arr = Array.from(obj) // [3, 13, 23, 33]Méthode pour déterminer si un objet est un objet itérable
typeof obj[Symbol.iterator] === 'function'Une petite extension de for of et forEach et for infor of est utilisé pour boucler des objets itérables, notamment Array, Set, Map, string et Array, Set et Map ont tous la méthode forEach
De plus, NodeList est pas un tableau, un ensemble ou une carte, mais un objet itérable qui peut être parcouru en utilisant for of De plus, lorsque vous utilisez for of pour boucler des objets, il peut être terminé plus tôt via break, mais forEach ne peut pas en sortir de la boucle à l'avance. for in parcourt les propriétés énumérables de l'objet, y compris les propriétés de sa chaîne de prototypes, et l'ordre n'est pas garanti Pour parcourir les propriétés énumérables de l'objet lui-même , utilisez la méthode
Pour déterminer si l'attribut est le propre attribut de l'objet hasOwnProperty()
, retournez l'attribut énumérable ou non énumérable de l'objet lui-même Object.getOwnPropertyNames(obj)
La méthode copie les valeurs de toutes les propriétés énumérables d'un ou plusieurs objets source vers l'objet cible Object.assign()
[…obj]
renvoie [...'obj']
["o", "b", "j"]
[...new Set('objobj')]
Object.values(obj)
renvoie une collection de valeurs de propriétés énumérablesde l'objet lui-même Object.values(obj)
let obj = { '0': 3, '1': 13, '2': 23, '3': 33 } let arr = Object.values(obj) // [3, 13, 23, 33]
La relation entre les chaînes et les tableaux
/ concat()
/ indexOf()
/ includes()
méthodes slice()
qui crée un nombre spécifié de copies de chaînes. repeat()
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!