ventajas tutorial que juego español desventajas descargar cold coldfusion coldfusion-10

coldfusion - tutorial - Eliminar duplicados de una lista



coldfusion tutorial español (5)

Asegúrese de que cada elemento de la lista tenga espacios en blanco recortados. " Tobacco" no equivale a "Tobacco" y no se verá como un duplicado. En su consulta SQL, recorte los valores para asegurarse de que no haya espacios iniciales o finales. En su lista estática, asegúrese de que no haya espacios entre las comas.

Tengo una lista de cadenas y necesito eliminar los duplicados. He intentado varias cosas, como:

Desafortunadamente, ninguno de ellos funcionó. Realmente no estoy seguro de lo que está pasando. Por lo que cualquier ayuda se agradece.

Actualmente estoy usando una versión de desarrollador gratuita de ColdFusion 10 en caso de que afecte a las cosas.

Lista de muestra:

lacunar_DM, Homocisteína, HTN, Tabaco, indeterminado, lacunar_DM, Homocisteína, Tabaco

Esto se creó al agregar una lista estática con una dinámica extraída de una base de datos:

<cfsavecontent variable= "lacunar_list"> lacunar_DM, Homocysteine, HTN, Tobacco, undetermined </cfsavecontent> <cfset combination = ListAppend(lacunar_list, lacunar)> <cfoutput> List before removing dups: #combination#<br/> List after removing dups: #listremoveduplicates(combination, ",", true)#<br/> </cfoutput>

Aquí están los resultados:

Lista antes de eliminar dups:

lacunar_DM, Homocisteína, HTN, Tabaco, indeterminado, lacunar_DM, Homocisteína, Tabaco

Lista después de eliminar dups:

lacunar_DM, Homocisteína, HTN, Tabaco, indeterminado, lacunar_DM, Homocisteína, Tabaco


Como se mencionó anteriormente, los elementos de su lista contienen espacio en blanco adicional. Al mirar su lista, todos los elementos están usando _ como espacios, por lo que la solución más simple es eliminar primero los espacios, luego eliminar los duplicados.

listRemoveDuplicates( Replace( YourList, " ", "", "ALL" ) )

Si tiene algunos espacios válidos, le sugiero usar un Trim() alrededor de los campos cuando compila la lista manualmente.

YourList = ListAppend( YourList, Trim( ListItem ) )


Creo que su problema es que su lista contiene espacio en blanco adicional. "Homocisteína" y "Homocisteína" no son los mismos valores. Del mismo modo, "Tabaco" y "Tabaco" no son los mismos valores.

lacunar_DM, Homocysteine, HTN, Tobacco, undetermined ,lacunar_DM,Homocysteine,Tobacco -----------^-------------^----^--------^------------^------------X------------X


En caso de que no tenga CF10, esta es mi forma preferida de eliminar duplicados de una lista.

<cfset newlist = [] /> <cfloop list="#combination#" index="i"> <cfif NOT arrayFind(newlist,trim(i))> // can also use arrayFindNoCase <cfset arrayAppend(newlist,trim(i))> </cfif> </cfloop> <cfoutput> #arraytolist(newlist)# </cfoutput>


El problema es que la lista que ha creado con cfsavecontent tiene caracteres de nueva línea porque cada elemento de esa lista se encuentra en su propia línea dentro de cfsavecontent . Como la otra lista con la que se está uniendo no tiene el mismo espacio en blanco, no obtendrá los resultados correctos.

En general, es mejor eliminar los espacios en blanco innecesarios de las listas en Coldfusion.

Pruebe esto en lugar de usar cfsavecontent :

<cfset lacunar_list = "lacunar_DM,Homocysteine,HTN,Tobacco,undetermined" > <cfset combination = ListAppend(lacunar_list, lacunar)>