|
|
|
| есть строка str такого вида:
ыыы ~ ыфвфыв ~ 123243 ~ dfsdf ~
пытаюсь ее преобразовать в массив с четерьмя элементами, а дальше - вывести все элементы в столбик
пробую так:
function count( mixed_var, mode )
{
var key, cnt = 0;
if( mode == 'COUNT_RECURSIVE' ) mode = 1;
if( mode != 1 ) mode = 0;
for (key in mixed_var)
{
cnt ;
if( mode==1 && mixed_var[key] && (mixed_var[key].constructor === Array || mixed_var[key].constructor === Object) ){
cnt = count(mixed_var[key], 1);
}
}
return cnt;
}
var m;
var result = "";
var mesmas = new Array();
mesmas = mesmas.split("~");
var co = count(mesmas, 'COUNT_RECURSIVE');
for (m=0;m<co;m++)
{
result+=mesmas[m]+"<br>";
}
mes.innerHTML=result;
|
не работает, в чем тут ошибка? | |
|
|
|
|
|
|
|
для: Blizard
(23.07.2009 в 18:54)
| |
<script>
var str = 'ыыы ~ ыфвфыв ~ 123243 ~ dfsdf ~';
var str0 = str.replace (/\s?\~\s?/g, '<br>\n')
alert (str0);
</script>
|
| |
|
|
|
|
|
|
|
для: PAT
(23.07.2009 в 19:14)
| | PAT, я наверно немного не корректно задал вопрос, цель не только вывести массив, но и каждый элемент, который является строкой какого-либо юзера чата, но ии преобразовывать исходя из настроек данного пользователя, шрифт, цвет и т.д., а также после будет необходимость выводить не все содержимое файла, а например 10 последних элементов, для тех пользователей. которые например толькочто зашли в чат, поэтому подкорректирую вопрос -- как вывести строку в столбик используя массив? в итоге в дальнейшем с ним удобнее и проще будет работать
Я свой вариант показал, по логике ведь там наверняка все правильно, но не вижу ошибки.. | |
|
|
|
|
|
|
|
для: Blizard
(23.07.2009 в 19:37)
| | mes.innerHTML = mesmas.split("~").join('<br>'); | |
|
|
|
|
|
|
|
для: AlexSol
(23.07.2009 в 20:14)
| | AlexSol, похоже ошибка в чем-то другом.. Посмотрите мой код, что там не правильно? Т.е. я не прошу предложить альтернативный вариант решения задачи, я прошу сказать, что я не правильно написал. | |
|
|
|
|
|
|
|
для: Blizard
(24.07.2009 в 07:44)
| | У вас написан БРЕД, разбирать который смысла нет.
Например, переменная mesmas объявляется как массив:
var mesmas = new Array();
| И следующим действием этот только лишь объявленный (но неопределённый) массив методом split () ДЕЛИТСЯ... "в новые массивчики", что ли?
mesmas = mesmas.split("~");
| А метод split () применяется только к СТРОКЕ... | |
|
|
|
|
|
|
|
для: PAT
(24.07.2009 в 09:58)
| | Согласен, тогда получается так:
str=xmlElement.firstChild.data;
var m;
var result = "";
var mesmas = new Array();
mesmas = str.split("~");
var co = count(mesmas, 'COUNT_RECURSIVE');
for (m=0;m<co;m++)
{
result+=mesmas[m]+"<br>";
}
mes.innerHTML=result;
Не работает ( | |
|
|
|
|
|
|
|
для: Blizard
(24.07.2009 в 10:32)
| | Повторяю - БРЕД у вас везде.
В каждой строке.
Например, метод split () разбивает строку на ИНДЕКСНЫЙ массив mesmas.
Который вы отсылаете функции count (), которая ЯКОБЫ работает с ХЕШ-массивом.
"ЯКОБЫ работает"... потому что синтаксически написана БЕЗГРАМОТНО.
Например - это ЧТО?
for (key in mixed_var)
{
cnt ;
|
Что означает написанное во второй строке cnt; ?
Что с ним делать-то надо?
Вы знаете?
Нет, не знаете.
И совсем НИКТО не знает.
И браузер не знает.
Там бреда ещё много.
Повторяю - он в каждой строке. | |
|
|
|
|
|
|
|
для: PAT
(24.07.2009 в 10:47)
| | PAT, я эту функцию взял на каком-то форуме в разделе функций javascript аналогов ф-ий php.
В javascript ведь нельзя count сделать, как в php, поэтому я искал, как это обыграть иначе, в интернете по этому поводу мало очень информации. Как подругому посчитать количество элементов массива? Если бы я сам мог определить где бред, а где не бред, я бы не пришел на этот форум. Мне нужна помощь. Я ведь не прошу написать за меня, я показал свой вариант, он неправильный, то что указываете, где бред - это очень помогает, но в данном случае у меня нет вариантов - как это бред заменить не бредом, поэтому прошу помощи у вас. Скажите, как в javascript делается count? | |
|
|
|
|
|
|
|
для: Blizard
(24.07.2009 в 11:21)
| | var leng = array.length
но если вам надо собрать в рямой последовательности, т.е. заменив ~ на <br> -- смотрите первый вариант. все делается в одну строку | |
|
|
|
|
|
|
|
для: AlexSol
(24.07.2009 в 12:38)
| |
str=xmlElement.firstChild.data;
var m;
var result = "";
var mesmas = new Array();
mesmas = str.split("~");
var co = mesmas.length;
for (m=0;m<co;m++)
{
result+=mesmas[m]+"<br>";
}
mes.innerHTML=result;
|
Где-то еще ошибка есть, т.к. так тоже не работает ( | |
|
|
|
|
|
|
|
для: Blizard
(24.07.2009 в 12:52)
| | Все, наконецто заработало, AlexSol, PAT, спасибо вам! Я еще вернусь с вопросами ) | |
|
|
|
|
|
|
|
для: Blizard
(24.07.2009 в 12:52)
| | все это заменяется строкой
mes.innerHTML = xmlElement.firstChild.data.split("~").join('<br>'); | |
|
|
|
|
|
|
|
для: AlexSol
(24.07.2009 в 13:08)
| | AlexSol, потом с сообщениями нужно будет работать, с массивом легче | |
|
|
|