Se trata de elementos vacíos

Los elementos vacíos son los elementos dentro de una lista que no contienen ningún valor. Para ver cómo lidiar con ellos, tomar la siguiente lista:

¿Cuántos elementos se encuentran en myList? Se diría que seis, pero la lista de funciones de ColdFusion a ver sólo cuatro, porque ColdFusion cuenta elementos de la lista vacía como la que existe entre la pera y la naranja y el elemento vacío al final de la lista, como inexistente. Si usted necesita un elemento vacío, debe poner espacios en la lista, como en el ejemplo siguiente:

Una buena práctica es evitar que los elementos vacíos si es posible. ColdFusion lista de funciones de procesamiento de trabajo de manera diferente a hacer la lista de funciones de procesamiento en muchos otros idiomas y podría presentar una cuestión de portabilidad. ¿Qué pasaría si de repente tenía que usar una coma como delimitador de su lista en lugar de una coma? Usted usaría ListChangeDelims () como sigue:

myList ahora contiene "manzana, pera, naranja, plátano". Lo interesante de ListChangeDelims () es que elimina automáticamente los elementos vacíos. Tomemos, por ejemplo, la siguiente lista:

  

ListChangeDelims () devolverá "manzana; pera, naranja, plátano". Uso ListChangeDelims (), por lo tanto, es también una buena manera de eliminar los elementos vacíos, incluso si usted no está cambiando delimitadores, como sigue:

Las listas que hemos estado utilizando en las partes anteriores han sido en orden aleatorio. Si usted necesita elementos en una lista para estar en un orden determinado, puede utilizar listsort (), como sigue:

Después de llamar a listsort (), myList contendrá los siguientes: manzana, plátano, naranja, pera lo que hace ListChangeDelims (), listsort () elimina los elementos vacíos. El segundo argumento de listsort () es el tipo de ordenación a realizar. Este argumento puede tomar cualquiera de los tres valores siguientes:

Numérico: Ordena la lista numérica. Si algún elemento de la lista no se puede convertir en un número, arroja un error de ColdFusion.

Texto: Ordena la lista por orden alfabético, pero es sensible a mayúsculas. Trate de llamar listsort () en la siguiente lista:

Pera, manzana, plátano, melocotón

La presente convocatoria se devolverá lo siguiente:

Plátano, pera, manzana, melocotón

Una ordenación sensible a letras mayúsculas siempre regresa antes de las letras en minúscula, como tal, todas las palabras en letras mayúsculas se ordenan antes de cualquier tope inicial de las palabras. Sólo el hecho de que una carta es mayúscula es suficiente para garantizar que la carta llegará antes de cualquier letra minúscula.

Textnocase: Ordena la lista por orden alfabético, el caso de ignorar. Listsort Calling () en la lista anterior se devolverá lo siguiente:

manzana, plátano, durazno, pera

El tercer argumento a listsort () puede ser ASC o DESC, dependiendo de si usted quiere una orden ascendente o decreciente. Supongamos que usted tenía la siguiente lista:

pera, naranja, limón, limón

Pero supongamos, también, que quería usar en una consulta como la siguiente:

SELECT * FROM fruta donde FruitName IN ( 'pera', 'naranja', 'limón', 'Citron'),

Simplemente no se podría utilizar de la siguiente manera:

SELECT * FROM fruta donde FruitName EN (myList # #)

Eso es porque myList no tiene comillas simples alrededor de sus elementos, y la base de datos se generará un error al tratar de ejecutar la consulta. Antes de usar myList en una consulta, debe calificar los elementos de la lista por que los rodea con comillas simples. ColdFusion ofrece una función denominada ListQualify () para hacer exactamente eso, como muestra el siguiente ejemplo:

SELECT * FROM fruta donde FruitName EN (# ListQualify (myList, "'")#)

El segundo atributo describe la clasificación, en este caso, una única oferta. Matrices, como listas de tareas, almacenar varios valores bajo un mismo nombre y tiene una biblioteca de funciones en torno a ellos. A diferencia de las listas, sin embargo, las matrices de almacenamiento de datos en compartimentos separados y no sólo como una cadena delimitada. Cuando las listas son variables simples (es decir, no son más que simples cadenas con delimitadores formalmente definidas), las matrices son variables complejas, lo que significa que puede contener más de un valor único y crear compartimentos programación direccionable para esos valores. A diferencia de una lista, que es una variable de cadena simple, una matriz es un tipo especial de objeto que se crea llamando a una función llamada ArrayNew (), como sigue:

ArrayNew () crea un nuevo objeto de una matriz bidimensional y lo asigna a la myArray variable. Una matriz puede tener un máximo de tres dimensiones. Una matriz tridimensional crea una pila de elementos. Una matriz bidimensional es como una red de elementos. Como usted puede conjeturar probablemente, una matriz tridimensional es como un cubo de elementos. Matrices multidimensionales rara vez son útiles a menos que usted está haciendo matemáticas de la matriz (que nadie debería estar haciendo en ColdFusion de todas formas). Usted se refiere a un elemento de matriz a través de la notación posicional, como sigue:

 myArray # [2] # 

Este fragmento de las salidas del segundo elemento de la matriz. El índice de una matriz (el número entre corchetes) también puede ser una variable que contenga un valor numérico. Mención de que los arreglos comenzarán a contar a 1 puede parecer redundante, pero en la mayoría de los lenguajes informáticos como JavaScript matrices de comenzar en el elemento 0. Tenga esto en cuenta si alguna vez rellenar una matriz de Javascript mediante el uso de elementos de la matriz de ColdFusion. Para agregar un elemento al final de una matriz, utilice ArrayAppend (), como sigue:


   

Observe la diferencia entre ListAppend () y ArrayAppend () en los siguientes ejemplos:


   

ListAppend () no modificar la lista original, sino que devuelve la lista original con el nuevo elemento añadido. ArrayAppend (), sin embargo, modifica la matriz original. Lo único que ArrayAppend () devuelve siempre es verdad, así que ni siquiera necesita para almacenar el valor de retorno. ColdFusion también tiene un ArrayPrepend () función, como sigue:

También puede insertar un elemento nuevo arreglo entre los elementos ya existentes. Después de llamar a ArrayNew () y ArrayAppend () anteriormente en este artículo, por ejemplo, myArray es el siguiente:

1: melocotón 2: Apple

Puede insertar un nuevo elemento entre los dos mediante ArrayInsertAt () como sigue:

myArray tiene ahora un nuevo elemento entre durazno y manzana, como muestra el siguiente:

1: melocotón 2: limón 3: manzana

También se pueden crear elementos de la matriz directamente la asignación de un valor a una posición, como sigue:

Ahora myArray tiene un cuarto elemento, como se puede ver en el siguiente resultado:

1: melocotón 2: limón 3: manzana 4: arándanos

También se puede saltar elementos, como sigue:

Este código lleva a otro elemento de la matriz en myArray, como se muestra en el siguiente:

1: melocotón 2: limón 3: manzana 4: arándano 5:  6: granada

Tenga en cuenta que ningún elemento se encuentra en la posición 5 en myArray. Este resultado no significa que el elemento está en blanco, sino que simplemente no existe. La diferencia entre el blanco y no existe a veces es difícil de entender, pero se reduce a esto: Intentar utilizar myArray [5], cuando el quinto elemento no existe generará un error, mientras que si el quinto elemento está en blanco, myArray [5 ] devolverá una cadena en blanco. Usted puede eliminar un elemento de una matriz utilizando ArrayDeleteAt (), como sigue:

Esa línea se elimina el sexto punto de la matriz que se describe en la parte anterior. Tenga en cuenta que la nueva longitud de la matriz es ahora de cinco años, a pesar de que el quinto elemento no está definido. Si necesita eliminar rápidamente todos los elementos de una matriz, utilice ArrayClear (), como sigue:

Después de llamar ArrayClear (), la matriz no tiene elementos restantes. Lo que sigue es una manera fácil de averiguar si una serie tiene elementos:

Esta matriz está vacía.

Esta matriz tiene al menos un elemento.

Para encontrar el número específico de elementos de una matriz, utilice ArrayLen (), como sigue:

Ambos ArrayLen () y ArrayIsEmpty () contar con los elementos no definidos, así que ten cuidado, porque por lo general no tienen en cuenta los elementos no definidos en el resto de su código. Encontrar un elemento en una lista es una simple cuestión de llamar a ListFind () o ListFindNoCase (). Usted tiene, sin embargo, no matriz equivalente de base a ListFind (). En su lugar, debe utilizar un bucle, como sigue:


   
   
   
   

Después de este ciclo se termina, i contiene el índice de matriz que contiene "manzana"-en este caso, 3. Una función de agregado toma una matriz que contiene los números como argumento y devuelve un único valor que representa alguna característica de esos números. Matrices de ColdFusion tienen cuatro funciones de agregado, y todos ellos son muestra en el código. Tenga en cuenta que las funciones de agregado aparecen en negrita, y que cada uno de ellos toman un solo argumento: la matriz que contiene los datos para ser agregados.


   
   
   
   
 
   
    Suma de los elementos de la matriz: # ArraySum (myNumericArray) # 
    Elemento de la matriz más pequeño: # ArrayMin (myNumericArray) # 
    Elemento de la matriz más grande: # ArrayMax (myNumericArray) # 
    Promedio de elementos de la matriz: # ArrayAvg (myNumericArray) # 
   
 

Si algún elemento de una matriz no se puede convertir en un número, ColdFusion genera un error si intenta utilizar una función de agregado. Otra característica de las matrices que tienen las listas no es la capacidad de cambiar fácilmente los elementos. Supongamos que myArray es el siguiente:

1: melocotón 2: limón 3: manzana 4: arándanos

Para cambiar los elementos de la primera y tercera, debe utilizar ArraySwap (), como sigue:

myArray entonces el siguiente aspecto:

1: manzana 2: limón 3: melocotón 4: arándanos

Al igual que con las listas, usted puede fácilmente ordenar un arreglo mediante el uso de ArraySort (), como sigue:

Después de llamar ArraySort (), myArray contendrá lo siguiente:

1: manzana 2: Blueberry 3: limón 4: melocotón

Si algún elemento no definido en la matriz como se intenta utilizar ArraySort (), ColdFusion arroja un error. En cuanto a listsort (), el segundo argumento de ArraySort () describe el tipo de ordenación que desea realizar. Este argumento puede tomar los tres valores siguientes:

Numérico: Ordena la matriz numérica. Si algún elemento de la matriz no se puede convertir en un número, arroja un error de ColdFusion.

Texto: Ordena la matriz por orden alfabético, pero es sensible a mayúsculas. Supongamos que usted llama ArraySort () en la matriz siguiente:

1: Pera 2: Blueberry 3: Apple 4: melocotón

La presente convocatoria se devolverá el siguiente resultado:

1: Apple 2: Pera 3: arándanos 4: melocotón

Textnocase: Ordena la matriz en orden alfabético, el caso de ignorar. ArraySort Calling () en la matriz anterior, se devolverá el siguiente resultado:

1: Apple 2: Blueberry 3: melocotón 4: Pera

El tercer argumento a ArraySort () puede ser ASC o DESC, dependiendo de si usted quiere una orden ascendente o decreciente. Cada vez que añade un elemento a una matriz, que está en la asignación de memoria de servidor ColdFusion. A veces, sin embargo, no hay suficiente memoria disponible en la ubicación actual de la matriz, y si esto sucede, todo el conjunto debe ser reasignado, y movido. Esta operación puede ser muy costoso en términos de tiempo de CPU y memoria, si tiene más de unos pocos elementos en su conjunto. Por el bien de la eficiencia, si se conoce el número de elementos que es una matriz que contiene antes de agregar a ellos, puede utilizar ArrayResize () para pre-reservar el espacio que usted necesita, como sigue:

Para obtener la máxima eficiencia en el código, llame ArrayResize () inmediatamente después de ArrayNew (). Listas de ofrecer ciertas características que las matrices no lo hacen, como la capacidad para encontrar fácilmente un elemento. Pero también puede hacer cosas fácilmente con las matrices que son difíciles de las listas, como encontrar un promedio. Por esta razón, a menudo tenemos que utilizar una lista cuando se necesita la funcionalidad de una matriz y viceversa. Para solucionar este dilema, se puede convertir una lista en una matriz o una matriz a una lista, mediante el ListToArray () y ArrayToList () funciones, como sigue:


   

Estas funciones pueden ser memoria de obra para las grandes listas y matrices, a fin de utilizar estas dos funciones sólo si realmente lo necesita. Si la matriz contiene valores complejos, ArrayToList () arroja un error. También tenga en cuenta que al convertir una lista en una matriz utilizando ListToArray (), ColdFusion elimina los elementos vacíos de la matriz, pero lo contrario no es verdad. ArrayToList () conserva todos los elementos vacíos en la matriz, posiblemente arrojando código que requiere tanto a sincronizar.

Después de saber cómo utilizar las listas y matrices, es necesario decidir qué hacer con ellos. Ambos exponen gran parte de la misma funcionalidad, por lo que es mejor para qué? Piense en las listas de más como de varios valores reales como las cadenas de tipos de datos complejos. Las listas son buenas para guardar conjuntos de datos en la que usted puede necesitar para encontrar artículos rápidamente. Las matrices son más adecuados para los conjuntos de datos muy ordenado, sobre todo si se debe coordinar el contenido de dos arrays. Recuerde, también, que las matrices son la única manera efectiva de utilizar funciones de agregado. Usted debe, sin embargo, las listas de usar si se deben almacenar datos en una variable de cliente. Usted no puede utilizar una matriz para este propósito, porque las variables de cliente no puede almacenar datos complejos. Puede, sin embargo, convertir la matriz a una lista y que guarde la lista en una variable de clientes. Como hemos mencionado anteriormente en este artículo, si usted no puede garantizar que cualquier delimitador particular, va a aparecer en la lista de artículos, usted debe utilizar una matriz para almacenar los datos en su lugar. Una matriz separa de sus valores entre sí, manteniendo cada valor en su propio compartimiento en vez de encadenar a todos juntos. Las matrices y las listas son herramientas poderosas, si se aplica correctamente. Cada uno tiene sus pros y sus contras, pero en la mayoría de los casos, usted puede convertir uno al otro para que su conjunto específico de funciones pueden ser utilizados. En este artículo usted aprendió a utilizar efectivamente ambas matrices y listas, y también a elegir entre las dos Listas. son variables simples que contienen varios valores separados por delimitadores, y son útiles en caso de que no es necesario utilizar las funciones de agregado en sus valores. Las matrices son variables complejas que contienen varios valores en los compartimentos de programación direccionables, y que son útiles cuando se necesitan funciones de agregado.

un artículo presentado por Albert Niftiger


Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito.
Importante: Este artículo "se trata de elementos vacíos", fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.


Online: 509 users browsing the articles directory