Ir para conteúdo
Entre para seguir isso  
Ramza

table.compare

Recommended Posts

Ramza    11
Ramza

Fala galera!

Vim aqui postar uma funçãozinha que vai ser muito útil pra muita gente que sofre tentando comparar tabelas, incluindo posições, etc.

Essa funçãozinha minha compara tabelas, tabelas dentro de tabelas, strings, numeros, etc.

 

 

Instalação

 

Apenas cole isto em alguma lib sua ou no final do arquivo constant.lua que fica geralmente na pasta data/lib do seu servidor.

 

 

Identação feita pelo IuniX noob KKK

 

function table.compare(table1, table2) -- Function by Ramza(Ricardo Ianelli)
local count = 0
for _,v in pairs(table1) do
	for j,k in pairs(table2) do
		if type(v) == 'table' and type(k) == 'table' then
			count = count + table.compare(v,k)
		else
			if v == k then
				count = count + 1
				break
			end
		end
	end
end
return count == #table1 and 1 or 0
end

 

Identação minha

 

function table.compare(table1, table2) -- Function by Ramza(Ricardo Ianelli)

local count = 0

for _,v in pairs(table1) do
  for j,k in pairs(table2) do
     if type(v) == 'table' and type(k) == 'table' then
        count = count + table.compare(v,k)
     else
       if v == k then
          count = count + 1
          break
       end
     end
  end
end

return count == #table1 and 1 or 0
end

 

Espero que seja útil, abraços, Ramza.

Editado por Ramza

Compartilhar este post


Link para o post
iuniX    4
iuniX

É, eu tava precisando e com preguicinha de fazer. Obrigado pela contribuição. Eu reindentei o código. Bem feito como sempre.

 

Aprovado e movido.

Compartilhar este post


Link para o post
Ramza    11
Ramza

Obrigado, deixei as 2 identações pq a sua tá mto feia (falo mesmo) KKKKKKKKKKKKK LOL

Compartilhar este post


Link para o post
dav9shal    1
dav9shal

pra q serve essa?

Compartilhar este post


Link para o post
iuniX    4
iuniX
pra q serve essa?

 

Comparar tabelas, exemplo:

local tabela1 = {1,2,3}
local tabela2 = {3,2,1}

if table.compare(tabela1,tabela2) then
print"iguais"
else
print"diferentes"
end

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×