20

Isinarraybrackets(Array,thing)

Por 20cm, 12 de out. de 2012 em Mods, funções e outros

otserv
tibia
5
1.1k
20cm2
12 de outubro de 2012 às 20:19

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 Outubro 13 por 20cm

OneshotO
12 de outubro de 2012 às 20:33

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 Outubro 12 por Oneshot

12 de outubro de 2012 às 20:37

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.

 

entrei pra postar isso.

20cm2
13 de outubro de 2012 às 17:23

T_T

fail grande então :\

caoticC
15 de outubro de 2012 às 18:24

Nem tanto foi mais uma função.

Gostei de sua criticidade ao usar for na array.

 

 

Função banana eu ri.

Editado Outubro 15 por caotic