Ir para conteúdo

Isinarraybrackets(Array,thing)


20cm

Posts Recomendados

Bom, vocês já se depararam com um array assim:

local array = {

["olá"] = 1,

["xtibia"] = 1,
}

 

E quiseram checar se uma string correspondia ao "olá" ou ao "xtibia"? Ou, se "olá" fosse "1" e "xtibia" fosse 2, ver se um número estava entre esses dois?

Bom, eu já, e fiz uma função pra fazer isso.

 

 

function isInArrayBrackets(array,thing)
local a = 0
for x, i in pairs (array) do
if thing == x then
a = a + 1
end
end
if a > 0 then
return true
else
return false
end
end

 

O que ela faz?

Ela quebra o array em x e i, sendo x a parte que fica entre colchetes e o i o que vem depois.

Ela compara todos os x's e vê se ele é igual ao thing

Se for, aumenta a variável a em 1, se não, não faz nada.

No final, se a for maior que 0 (tiver achado algo igual), retorna true, se não, false.

 

Por exemplo:

local array = {
["olá"] = 1,
["xtibia"] = 2
}

if isInArrayBrackets(array,"olá") then
print("yes")
else
print("no")
end

 

Ali, vai retornar true, pois, "olá" está nos colchetes da array

Se fosse

 

Por exemplo:

local array = {
["olá"] = 1,
["xtibia"] = 2
}

if isInArrayBrackets(array,"megan fox gostosa pra caralho") then
print("yes")
else
print("no")
end

 

Retornaria falso, pois "megan fox gostosa pra caralho" não está nem em ["olá"] nem em ["xtibia"]

É isso galera, abraços

Editado por 20cm
Link para o comentário
Compartilhar em outros sites

Bela iniciativa, Eitor, mas

 

function banana(a, b)
return a[b] ~= nil
end

 

Faz a mesma coisa que sua função sem precisar aumentar uma variável interna e tal.

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...