Простой текстовый файл, состоящий из абзацев и нескольких пустых строк, загружается в массив через Ajax. Массив разбивается на элементы новыми строками, например:
var infoArray = new Array();
infoArray = response.split("\n");
Затем массив проходит через цикл for с различными проверками ключевых слов в различных элементах, которые указывают на то, что следующие n элементов обрабатываются определенным образом. В основном выводятся элементы, такие как
strMsg += '<li>' + infoArray[i] + '</li>';
Проблема в том, что пустые строки из текстового файла также сохраняются в элементы массива. Затем выводится пустой элемент списка, и это заметно неправильно.
Нужно тестовое условие, чтобы проверить, является ли элемент массива пустым или содержит символ новой строки, я не уверен, что применимо. Кроме того, сервер глючит, и иногда для загрузки новой информации требуется минута, поэтому я иногда не уверен, обновляю ли я свой самый последний код или нет.
Некоторые из вещей, которые я пробовал:
if (!(infoArray[i].substring(0,0) == '')) { /* process output */ } if (!(infoArray[i].substring(0,1) == '\n')) { /* process output */ } if (!(infoArray[i].substring(0,0) == '\n')) { /* process output */ } if (!(infoArray[i].substring(0,1) == /\n/)) { /* process output */ } if (!(infoArray[i].substring(0,1) == /\n/)) { /* process output */ } if (!(infoArray[i].substring(0,1) == /\n|\s*\n/)) { /* process output */ } if (!(infoArray[i].IsEmpty())) { /* process output */ } var tempString = infoArray[i].toString(); if (!(tempString.IsEmpty())) { /* process output */ } if (tempString.length != 0) { /* process output */ }
Идеи ?
Редактировать: о да, я также пытался выполнить «кодирование» и «декодирование» перед проверкой «\ n», просто чтобы вывести его.
2 ответа
Попробуйте обрезать строку с помощью RegEx. Я думаю, что это популярно (взято из первого обращения к Google ):
if (!(infoArray[i].replace(/^\s+|\s+$/g, '') == ''))
WebKit публикует другой набор функций обрезки, которые вы можете использовать.
Я бы предложил просто обрезать элемент массива. Например, вы можете использовать jQuery:
if (infoArray[i] = $.trim(infoArray[i])) {
strMsg += '<li>' + infoArray[i] + '</li>';
}
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.