unicos repetidos objetos filtros eliminar elementos duplicados datos buscar arreglo array javascript arrays indexing string removeall

javascript - repetidos - Eliminar cadenas vacías de la matriz mientras se mantiene el registro Sin Bucle?



eliminar elementos repetidos de un array de objetos javascript (5)

Si está usando jQuery, grep puede ser útil:

var arr = [ a, b, c, , e, f, , g, h ]; arr = jQuery.grep(arr, function(n){ return (n); });

arr es ahora [ a, b, c, d, e, f, g];

Aquí se hizo esta pregunta: elimine cadenas vacías de la matriz mientras se mantiene el registro de índices con cadenas no vacías

Si observas lo dado como @Baz lo tendiste;

"I", "am", "", "still", "here", "", "man"

"y de esto deseo producir las siguientes dos matrices:"

"I", "am", "still", "here", "man"

Todas las respuestas a esta pregunta se refieren a una forma de bucle.

Mi pregunta: ¿Existe la posibilidad de eliminar todos los index con string empty sin ningún bucle? ... ¿hay alguna otra alternativa además de iterar la matriz?

Puede ser alguna regex o alguna jQuery que no tenemos conocimiento?

Todas las respuestas o sugerencias son muy apreciadas.


es decir, necesitamos tomar múltiples direcciones de correo electrónico separadas por comas, espacios o línea nueva como se muestra a continuación.

var emails = EmailText.replace(","," ").replace("/n"," ").replace(" ","").split(" "); for(var i in emails) emails[i] = emails[i].replace(/(/r/n|/n|/r)/gm,""); emails.filter(Boolean); console.log(emails);


TENGA EN CUENTA: la documentación dice:

filter es una extensión de JavaScript para el estándar ECMA-262; como tal , puede no estar presente en otras implementaciones del estándar . Puede solucionar esto insertando el siguiente código al comienzo de sus scripts, permitiendo el uso del filtro en las implementaciones ECMA-262 que no lo soportan de forma nativa. Este algoritmo es exactamente el especificado en ECMA-262, 5ª edición, suponiendo que fn.call evalúa el valor original de Function.prototype.call, y que Array.prototype.push tiene su valor original.

Por lo tanto, para evitar un poco de dolor, es posible que tenga que agregar este código a su script al principio .

if (!Array.prototype.filter) { Array.prototype.filter = function (fn, context) { var i, value, result = [], length; if (!this || typeof fn !== ''function'' || (fn instanceof RegExp)) { throw new TypeError(); } length = this.length; for (i = 0; i < length; i++) { if (this.hasOwnProperty(i)) { value = this[i]; if (fn.call(context, value, i, this)) { result.push(value); } } } return result; }; }


var arr = ["I", "am", "", "still", "here", "", "man"] // arr = ["I", "am", "", "still", "here", "", "man"] arr = arr.filter(Boolean) // arr = ["I", "am", "still", "here", "man"]

filter documentación

// arr = ["I", "am", "", "still", "here", "", "man"] arr = arr.filter(v=>v!=''''); // arr = ["I", "am", "still", "here", "man"]

Flecha documentación de funciones


var newArray = oldArray.filter(function(v){return v!==''''});