11 votes

Lua : La façon la plus intelligente d'ajouter à la table seulement si elle n'est pas déjà dans la table, ou de supprimer les doublons

J'ai un tableau de cordes. J'aimerais trouver un moyen simple de supprimer tous les doublons du tableau.

Ainsi, si le tableau est {a, b, c, c, d, e, e} après cette opération, il serait {a, b, c, d, e}

Sinon, et probablement de préférence, existe-t-il un moyen d'ajouter un élément à un tableau, mais seulement s'il n'est pas déjà contenu dans le tableau.

< \noobquestion >

9voto

Jane T Points 2011

Ce que je fais normalement, c'est d'indexer le tableau sur la chaîne de caractères de la manière suivante

tbl[mystring1] = 1
tbl[mystring2] = 1

etc.

W

I

u

if tbl[mystring1] == nil then
  tbl[mystring1] = 1
else
  tbl[mystring1] = tbl[mystring1] + 1
end

A

newtbl = {}
for s,c in pairs(tbl) do
  table.insert(newtbl,s)
end

8voto

2rs2ts Points 3310

Il semble que vous essayiez de mettre en œuvre un ensemble, une collection d'éléments uniques. Cet article pourrait vous aider : http://www.lua.org/pil/13.1.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X