{"id":2830,"date":"2007-10-26T14:47:25","date_gmt":"2007-10-26T17:47:25","guid":{"rendered":"http:\/\/www.charles.pilger.com.br\/blog\/2007\/10\/26\/uma-pequena-brincadeira-com-arrays\/"},"modified":"2007-10-26T15:01:51","modified_gmt":"2007-10-26T18:01:51","slug":"uma-pequena-brincadeira-com-arrays","status":"publish","type":"post","link":"http:\/\/www.charles.pilger.com.br\/blog\/archives\/2830","title":{"rendered":"Uma pequena brincadeira com arrays"},"content":{"rendered":"<p>Vi <a href=\"http:\/\/pedrodoria.com.br\/2007\/10\/19\/sobre-palavroes\/\">no blog do Pedro Doria<\/a> que est\u00e1 aberto para quem quiser<a href=\"http:\/\/64.233.169.104\/search?q=cache:oBIy8PivERcJ:www.caixa.gov.br\/_funcoes\/moderador.inc+site:.gov.br\"> a lista de palavras bloqueadas no site da Caixa Econ\u00f4mica Federal<\/a>. Al\u00e9m de chamar a aten\u00e7\u00e3o para o fato de que palavras como estupidez, fenda, furo, japa, e peru serem moderadas (ou seja, nunca envie uma mensagem perguntando sobre financiamento para cria\u00e7\u00f5es de peru), junto com homossexual, l\u00e9sbica e suas varia\u00e7\u00f5es (o que mostra um pouco de preconceito por parte tanto da Caixa como de seus clientes), achei interessante o modo como \u00e9 feita a implementa\u00e7\u00e3o da rotina. <\/p>\n<p>No caso \u00e9 alimentado um array com um n\u00famero servindo de \u00edndice e a palavra censurada e ap\u00f3s \u00e9 passado item por item do array verificando se a string recebida pela fun\u00e7\u00e3o confere, retornando true em caso positivo:<\/p>\n<pre class=\"prettyprint\">function Moderador(string){ \r\n             var Palavrao = new Array();\r\n             Palavrao[1]   = 'PALAVRAO1';\r\n             Palavrao[2]   = 'PALAVRAO2';\r\n             Palavrao[3]   = 'PALAVRAO3';\r\n\r\n             var QtdPalavroes  = Palavrao.length ;\r\n             var ss = string;\r\n             ss = ss.toUpperCase() ;\r\n             var x; \r\n             for (i = 1; i < QtdPalavroes ; i++) {\r\n                   procurar = Palavrao[i] ;\r\n                   Existe = ss.indexOf(procurar);\r\n                   if (Existe != -1){                  \r\n                         return true;\r\n                   }\r\n             }\r\n      }\r\n<\/pre>\n<p>Olha, eu confesso que em termos de otimiza\u00e7\u00e3o eu n\u00e3o sou l\u00e1 essas coisas, mas \u00e9 impress\u00e3o minha ou essa rotina a\u00ed n\u00e3o seria muito mais r\u00e1pida se fosse usada a palavra como \u00edndice do array? Assim sendo, s\u00f3 para pegar no p\u00e9, resolvi reescrever a fun\u00e7\u00e3o acima:<\/p>\n<pre class=\"prettyprint\">function Moderador(string){ \r\n             var Palavrao = new Array();\r\n             Palavrao['PALAVRAO1']   = 1;\r\n             Palavrao['PALAVRAO2']   = 1;\r\n             Palavrao['PALAVRAO3']   = 1;\r\n\r\n             var ss = string;\r\n             ss = ss.toUpperCase() ;\r\n             Existe = Palavrao[ss];\r\n             if (Existe == 1){                  \r\n                      return true;\r\n             }\r\n}\r\n<\/pre>\n<p>Mesmo (creio eu) comendo um pouco mais de mem\u00f3ria a gente tem uma solu\u00e7\u00e3o que fica bem mais elegante, n\u00e3o?<\/p>\n<p><small>(E caso voc\u00ea n\u00e3o tenha entendido qual \u00e9 a moral desse post \u00e9 que na real ele \u00e9 um teste do <a href=\"http:\/\/code.google.com\/p\/google-code-prettify\/\">Google Code Prettify<\/a>. Quero ver se daqui pra frente eu escrevo mais c\u00f3digos por aqui, aproveitando o fato que estou num momento mais nerd da minha vida, lendo bastante livros t\u00e9cnicos&#8230;)<\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vi no blog do Pedro Doria que est\u00e1 aberto para quem quiser a lista de palavras bloqueadas no site da Caixa Econ\u00f4mica Federal. Al\u00e9m de chamar a aten\u00e7\u00e3o para o fato de que palavras como estupidez, fenda, furo, japa, e peru serem moderadas (ou seja, nunca envie uma mensagem perguntando sobre financiamento para cria\u00e7\u00f5es de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/posts\/2830"}],"collection":[{"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/comments?post=2830"}],"version-history":[{"count":0,"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/posts\/2830\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2830"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2830"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.charles.pilger.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}