26.02.2014, 09:57
|
|
Аспирант
|
|
Регистрация: 26.10.2011
Сообщений: 94
|
|
Вывод списка по количеству переменных
Здравствуйте,
Как можно решить следующую задачу:
В переменные попадает строка с информацией (если она есть), при этом необходимо вывести только первые 5 строки (может быть только 1 строка с информацией, остальные пустые), остальные (если строк оказалось > 5 ) записать в переменную и например вывести в другом месте.
|
|
26.02.2014, 13:58
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,225
|
|
utb, тут бэ, кагбэ по-русски это прочитать...
|
|
26.02.2014, 14:51
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
ksa,
|
|
26.02.2014, 15:17
|
|
Аспирант
|
|
Регистрация: 26.10.2011
Сообщений: 94
|
|
Сейчас попробую:
есть характеристики товара: вес, стоимость и т.д.
У разных товаров разное количество заполненных характеристик.
Мне надо вывести только первые 5 характеристик в блок, остальные в другой блок.
Понятнее стало?
var a = "12кг";
var b = "10 мин";
var c = null;
var d = "бла бла";
var e = "бла бла 1";
var j = "бла бла 1";
/* добавляем разные плюшки к переменным, приводим в читабельный вид и т.д.*/
var str1 = a + b + d // надо вывести только существующие первые 3
var str2 = e+j; // остальные в др переменную
addToHTml(id,str); // функция вставляет в html
addToHTml(id2,str2); // функция вставляет в html
|
|
26.02.2014, 15:25
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
utb,
забейте все данные в массив разрешьте по индексу 3 на два массива -- в каждом уберите ячейки без данных и выведите в нужное место.
|
|
26.02.2014, 15:36
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
utb,
или так
var a = "12кг";
var b = "10 мин";
var c = null;
var d = "бла бла";
var e = "бла бла 1";
var j = "бла бла 1";
function sort()
{ var str1 = '',str2 = '';
for (var i=0; i< arguments.length; i++) {
i < 3 && arguments[i] && (str1 += arguments[i]);
i >= 3 && arguments[i] && (str2 += arguments[i]);
}
return [str1,str2]
}
alert(sort(a, b, c, d, e, j).join('\n'))
|
|
26.02.2014, 15:37
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,225
|
|
Сообщение от рони
|
забейте все данные в массив
|
Или в объект... Т.о. можно делать массив объектов/товаров...
|
|
27.02.2014, 11:23
|
|
Аспирант
|
|
Регистрация: 26.10.2011
Сообщений: 94
|
|
рони,
спасибо, но получается немного не то, если вывести только str1, то выведет "12кг10 мин", а должно выводить первые три существующие свойства, т.е. пустые свойства надо пропускать.
В цикле использовать условия? или лучше проверку всех аргументов сделать ?
з.ы.
можно так, как вариант?
var a = "12кг";
var b = "10 мин";
var c = null;
var c1 = "";
var d = "бла бла";
var e = "бла бла 1";
var j = "бла бла 1";
function sort()
{ var str1 = '',str2 = '';
var num = 3;
for (var i=0; i< arguments.length; i++) {
if(arguments[i]) {
i < num && arguments[i] && (str1 += arguments[i]);
i >= num && arguments[i] && (str2 += arguments[i]);
} else {
num++;
}
}
return str1;
}
var test = sort(a, b, c, c1, d, e, j);
alert(test);
з.ы.ы. а как сделать запускающийся код?
Последний раз редактировалось utb, 27.02.2014 в 11:38.
|
|
27.02.2014, 12:05
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Сообщение от utb
|
i < num && arguments[i] && (str1 += arguments[i]);
|
двойная проверка - можно убрать
Сообщение от utb
|
как сделать запускающийся код?
|
[JS run][/JS]
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
27.02.2014, 12:11
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
utb,
var a = "12кг";
var b = "10 мин";
var c = null;
var c1 = "";
var d = "бла бла";
var e = "бла бла 1";
var j = "бла бла 1";
function sort()
{ var str1 = '',str2 = '';
var num = 0;
for (var i=0; i< arguments.length; i++) {
if(arguments[i]) {
num < 3 && (str1 += arguments[i]);
num >= 3 && (str2 += arguments[i]);
num++;
}
}
return [str1,str2];
}
var test = sort(a, b, c, c1, d, e, j);
alert(test[0]);
|
|
|
|