Этот вопрос был задан здесь: удалить пустые строки из массива, сохраняя запись индексов с непустыми строками
Если вы заметили, что @Baz выложил это;
"I", "am", "", "still", "here", "", "man"
"и из этого я хочу создать следующие два массива:"
"I", "am", "still", "here", "man"
Все ответы на этот вопрос относятся к форме зацикливания.
Мой вопрос: есть ли возможность удалить все index
es empty
string
без зацикливания? ... есть ли другая альтернатива, кроме итерации массива?
Может быть, некоторые из regex
них jQuery
мы не знаем?
Мы высоко ценим все ответы или предложения.
array.filter(!!)
что мы можем получить в настоящее время :)Boolean
было бы неплохо.var newArray = oldArray.filter(function(v){return v!==''});
источник
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: в документации говорится:
Итак, чтобы избежать душевной боли, вам, возможно, придется добавить этот код в свой скрипт в самом начале .
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; }; }
источник
arr = arr.filter(v => v);
при возврате
v
неявное преобразование в правдивоеисточник
Если вы используете jQuery, grep может быть полезен:
var arr = [ a, b, c, , e, f, , g, h ]; arr = jQuery.grep(arr, function(n){ return (n); });
arr
сейчас[ a, b, c, d, e, f, g];
источник
т.е. нам нужно взять несколько адресов электронной почты, разделенных запятыми, пробелами или новой строкой, как показано ниже.
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);
источник
.replace(" ","").split(" ")
«замените все пробелы ничем, затем попробуйте разделить каждое пробел»Вы можете использовать метод lodash, он работает для строки, числа и логического типа
_.compact([0, 1, false, 2, '', 3]); // => [1, 2, 3]
https://lodash.com/docs/4.17.15#compact
источник