Encierra datos de cualquier tipo para manejarse o procesarse, soporta múltiples argumentos. Se infieren los tipos de datos y sus funciones correspondientes a partir de el/los argumento(s).
Sintaxis normal:
_(cualquier_dato);
Sintaxis multiargumento:
_(cualquier_dato_1, /* ..., */ cualquier_dato_n);
Retorno:
Objeto con las siguientes propiedades y funciones:
data:Primer argumento de la función.
type:Tipo de datos primitivo del primer argumento.
count:Conteo del primer argumento.
args:Todos los argumentos de la función.
is():Función que devuelve true si los tipos de datos ingresados coinciden o false si no.
are():Alias de la función is.
...():Todas las funciones correspondientes a los tipos de datos de los argumentos.
Ejemplo:
_([], 2, { n: false }, new Date(), /[a-z]/, null);
_({ }).deep( ):Función para recorrer objetos/arrays multinivel con índices textuales.
Recorre el objeto/array del primer argumento de la función principal, ejecutando un callback para cada ítem de cada nivel. El primer argumento puede contener datos mixtos.
Sintaxis:
_(objeto).deep(FUNCION, NIVEL, INDICE);
Argumentos:
FUNCION:Callback que se ejecutará para cada ítem de cada nivel con argumentos de referencia a cada uno:
llave (arg. 0):Índice textual del ítem.
valor (arg. 1):Contenido del ítem.
indice (arg. 2):Índice numérico asignado al ítem, relativo a todo el recorrido.
nivel (arg. 3):Nivel en que se encuentra el ítem.
NIVEL:Opcional. Especifica el nivel del objeto/arrays hasta dónde se recorrerá, acepta los siguientes tipos de valores. Por defecto, recorre solo el primer nivel.
number:Especifica el número del nivel hasta el cual recorrerá. Se cuenta desde 0 (nivel 1).
true:Se recorrerán todos los niveles del objeto.
INDICE:Opcional. Número que se asignará a cada ítem y aumentará progresivamente desde el primero, para identificar su posición en orden en el objeto, independientemente del nivel donde esté. Por defecto, es 0 y se cuenta desde el ítem 0 (ítem 1).
Retorno:
Objeto con propiedad count con el número de ítems recorridos.
_([ ]).each( ):Función para recorrer arrays/nodos multinivel con índices numéricos.
Recorre el array o lista de nodos del primer argumento de la función principal, ejecutando un callback para cada ítem de cada nivel. El primer argumento puede contener datos mixtos.
Sintaxis:
_(array).each(FUNCION, OPCIONES, INDICE);
Argumentos:
FUNCION:Callback que se ejecutará para cada ítem de cada nivel con argumentos de referencia a cada uno:
indice (arg. 0):Índice numérico del ítem relativo a su nivel.
valor (arg. 1):Contenido del ítem.
indice_orden (arg. 2):Índice numérico asignado al ítem, relativo a todo el recorrido.
OPCIONES:Argumento opcional. Objeto donde se puede especificar las siguientes opciones.
simple:Si es true, solo recorre el primer nivel.
reverse:Si es true, recorre desde el último hacia el primer ítem.
INDICE:Opcional. Número que se asignará a cada ítem y aumentará progresivamente desde el primero, para identificar su posición en orden en el array o lista de nodos, independientemente del nivel donde esté. Por defecto, es 0 y se cuenta desde el ítem en que comienza (ítem 0, como ítem 1).
Retorno:
Objeto con propiedad count con el número de ítems recorridos.
is( ) are( ):Función para identificar tipos de datos.
Identifica todos los tipos de datos que corresponden al primer argumento o a los argumentos de la función (en caso de tipos multiargumentos). La función are es un alias de is. Los tipos de datos primitivos y predefinidos utilizan solo el primer argumento.
Array con los nombres en minúsculas de los tipos de datos identificados.
Ejemplo:
is(/[a-z]/);
_( ).is( ) _( ).are( ):Función para comparar/comprobar tipos de datos.
Devuelve true o false si todos los tipos de datos especificados en los argumentos del método coinciden o no, con: el primer argumento o los argumentos de la función principal (en caso de tipos multiargumentos).
nombre_tipo_datos:Nombre en minúscula del tipo de datos a comparar/comprobar. Soporta múltiples argumentos.
Retorno:
true o false.
Ejemplo:
_(/[a-z]/).is('regexp', 'defined');
_( ).run( ):Función para ejecutar todas las funciones dentro de objetos/arrays.
Ejecuta cualquier función directa o que esté dentro de un objeto/array del primer argumento de la función principal, opcionalmente, con referencia para el contexto this y para argumentos.
type( ):Función para identificar el tipo de datos primitivo.
Identifica el tipo de datos primitivo del primer argumento, no soporta múltiples argumentos.
Sintaxis:
type(cualquier_dato);
Retorno:
Uno de los siguientes string:
null:Tipo de datos nulo.
undefined:Tipo de datos indefinido.
boolean:Tipo de datos booleano.
number:Tipo de datos numéro.
bigint:Tipo de datos numéro grande.
string:Tipo de datos texto.
symbol:Tipo de datos símbolo.
function:Tipo de datos función.
object:Tipo de datos objeto.
array:Tipo de datos arreglo.
date:Tipo de datos fecha.
regexp:Tipo de datos expresión regular.
error:Tipo de datos error.
window:Tipo de datos ventana.
nodes:Tipo de datos nodos DOM.
node:Tipo de datos nodo DOM.
Ejemplo:
type(document.querySelector('a'));
assign( ):Función para extender/fusionar objetos de manera personalizada.
Sintaxis:
assign()
Argumentos:
:
Retorno:
Ejemplo:
assign()
count( ):Función para contar varios tipos de datos.
Sintaxis:
count()
Argumentos:
:
Retorno:
Ejemplo:
count()
type:Lista de tipos de datos genéricos disponibles.
native:Tipo de dato que detecta funciones nativas.
collection:Tipo de datos correspondiente a objetos y arrays.
accessible:Tipo de datos correspondiente a objetos, arrays, nodo(s), y window.
applicable:Tipo de datos correspondiente a node y window.
empty:Tipo de datos equivalente al conteo de algo que resulta en 0.
nan:Tipo de dato para valores que no son numéricos ni números.
numerical:Tipo de dato para valores que son numéricos, como representaciones de números en strings.
decimal:Tipo de dato para valores que son numéricos y contiene decimales.
amid:Tipo de dato multiargumento para determinar un número dentro del rango especificado.
char:Tipo de datos equivalente a un número entre 0 y 255.
short:Tipo de datos equivalente a un número entre 0 y 65535.
integer:Tipo de datos equivalente a un número entre 0 y 4294967295.
long:Tipo de datos equivalente a un número entre 0 y 18446744073709551615 (aunque depende del límite Number.MAX_SAFE_INTEGER del intérprete JavaScript [usualmente 9007199254740991], si necesita, use BigInt en su lugar).
signed:Tipo de dato para valores con signo de menor a 0.
signed.char:Tipo de datos equivalente a un número entre -128 y 127.
signed.short:Tipo de datos equivalente a un número entre -32768 y 32767.
signed.integer:Tipo de datos equivalente a un número entre -2147483648 y 2147483647.
signed.long:Tipo de datos equivalente a un número entre -9223372036854775808 y 9223372036854775807 (aunque depende del límite Number.MAX_SAFE_INTEGER del intérprete JavaScript [usualmente 9007199254740991], si necesita, use BigInt en su lugar).
finite:Tipo de dato para valores que son números y son finitos.
infinite:Tipo de dato para valores que son números y no son finitos.
defined:Tipo de datos para valores que no son equivalentes a null, es decir, no son: false, undefined, 0, ni string vacío.
valid:Tipo de datos para valores que son definidos y numéricos, o un string con longitud.
invalid:Tipo de datos para valores contrarios al tipo de datos valid.
Ejemplo:
type[ ]:Constructor de tipos de datos personalizados.
Sintaxis:
type.nuevo_tipo_dato = {
before: { },
fn: { },
recognition: function(a, b, c){
return a == 1 && b == 2 && c == 3;
}
}
Argumentos:
:
Retorno:
Ejemplo:
type.nuevo_tipo_dato = {
recognition: function(a, b, c){
return a == 1 && b == 2 && c == 3;
}
};
is(1, 2, 3);
type[ ].before[ ] type[ ].fn[ ]:Funciones autoasignables para tipos de datos.