Как создать двумерный массив с помощью циклов.
Вот текст:
а="Мама мыла раму.Сын пошёл учиться.Щенок весело гавкал." Как создать двумерный массив с помощью циклов.Разделители,сначала-точка,затем-пробел. Должно получиться: a=[ Мама,мыла,раму ] [ Сын,пошёл,учиться ] [ Щенок,весело,гавкал] Решение есть,но нужно чтобы иполучилось b[i][j] c помощью цикла. а="Мама мыла раму.Сын пошёл учиться.Щенок весело гавкал."; pat=/\./;b=a.split(pat);for(i=0;i<b.length;i++){document.w rite(b[i]+'<br>');}reg=/\s/;c=b[0].split(reg);for(i=0;i<c.length;i++){ document.write(c[i]+'<br>');} |
dima***,
Ты понимаешь что в любом случае получишь объект? В js нет двумерных массивов. |
Понятно.А как сделать-то?
|
Цитата:
Для медитации ...
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script>
var a = "Мама мыла раму.Сын пошёл учиться.Щенок весело гавкал.",
pat = /[^.]+/g,
b = a.match(pat);
for (var i = 0; i < b.length; i++) {
document.write(b[i] + '<br>');
var reg = /\s/;
b[i] = b[i].split(reg);
for (var j = 0; j < b[i].length; j++) {
document.write(b[i][j] + '<br>');
}
}
a = b;
document.write(a)
</script>
</body>
</html>
|
Рони-спасибо огромное!!!:)
Целый месяц бился.Что-то похожее делал,но в Adobe Dreamweawer не получалось.Сейчас буду разбираться,где ошибка была. |
Рони,первый раз вижу такую констукцию.Везде пишут for(i=0;i=a.length;i++){for(j=0;j=a.length;j++)}}, т.е. подряд 2 цикла идут.А где можно посмотреть похожий пример не подскажешь?
Ещё раз огромное спасибо. |
Цитата:
|
dima***,для вашего случая достаточно и одного цикла
var a = "Мама мыла раму.Сын пошёл учиться.Щенок весело гавкал.",
pat = /[^.]+/g,
reg = /\s/,
b = a.match(pat);
for (var i = 0; i < b.length; i++) {
b[i] = b[i].split(reg);
}
a = b;
document.write(a)
|
Да,отлично,спасибо!Ещё лучше стало!
Разобрался почему не получалось. b[i] = b[i].split(reg)-вот до этой строки не додумался. |
Или так:
var str = "Мама мыла раму.Сын пошёл учиться.Щенок весело гавкал.";
var result = str.split(/\./).map(function(value) {
return value.split(/\s/);
});
alert(result);
Цитата:
|
Цитата:
|
:write: monolithed, на всякий случай ...
1. Цитата:
|
Цитата:
Все-равно для match нужна проверка на null Цитата:
|
C учетом правок, как-то так:
var str = "Мама мыла раму.Сын пошёл учиться.Щенок весело гавкал.";
var result = str.split(/\.(?!$)/).map(function(value) {
return value.split(/\s/);
});
alert(result);
|
monolithed,
сколько будет 2 * 2 нуда гдето так 7 -8 ... Цитата:
var str = "Мама мыла раму.Сын пошёл учиться.Щенок весело гавкал.";
var result = str.split(/\.(?!$)/).map(function(value) {
return value.split(/\s/);
});
alert(result[2][2].length);
|
Ага, спать пора
|
Всем спасибо за помощь.
А как сделать: var str = "Мама мыла раму.Сын пошёл учиться.Щенок гавкал."; 1.Разделитель точка. 2.replace(reg,'$1,$2,$3'); В "Щенок гавкал" должно получиться("Щенок,гавкал,''") . |
alert("Мама мыла раму.Сын пошёл учиться.Щенок гавкал.".match(/\.(.*\.)$/)[1].split(/\./));
Для чего нужен пустой элемент в конце? |
А "Мама мыла раму" не разделилась?
|
Цитата:
|
alert("Мама мыла раму.Сын пошёл учиться.Щенок гавкал.".match(/[^.]+/g).map(function(value) {
return value.split(/\s/);
}));
Без последних пустых элементов, т.к. не вижу в этом здравого смысла |
Цитата:
Нужно с использованием replace получить массив массивов: a=[Мама,мыла,раму] [Сын,пошёл,учиться] [Щенок,гавкал,''] <script> a="Мама мыла раму.Сын пошел учиться.Щенок гавкал."; reg=/([А-Яа-я]+)\s([А-Яа-я]+)\s([А-Яа-я]+)\./g; b=a.match(reg); pat=/\./; c=new Array; for(i=0;i<b.length;i++){ document.write(b[i]+'<br>'); c[i]=b[i].replace(reg,'$1,-,$2,$3') } for(i=0;i<c.length;i++){ document.write(c[i]+'<br>'); } </script> |
monolithed,объясни пожалуйста "map(function(value)"
|
Цитата:
var str = 'Мама мыла раму.Сын пошёл учиться.Щенок гавкал.';
var result = [];
str.replace(/[^.]+/g, function(value) {
return result.push(value.split(/\s/));
});
alert(result);
Цитата:
|
Да,спасибо.
|
Вообщем,нужно,чтобы использовалось,то что в скобках.Типа этого:
<script> a="Мама мыла раму.Сын пошел учиться.Щенок гавкал."; reg=/([А-Яа-я]+)\s([А-Яа-я]+)\s([А-Яа-я]+)\./g; b=a.match(reg); pat=/\./; c=new Array; for(i=0;i<b.length;i++){ document.write(b[i]+'<br>'); c[i]=b[i].replace(reg,'$1,-,$2,$3') } for(i=0;i<c.length;i++){ document.write(c[i]+'<br>'); } </script> |
dima***,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. Вариант...
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script>
a="Мама мыла раму.Сын пошел учиться.Щенок гавкал.";
reg=/([А-Яа-я]+)\s([А-Яа-я]+)(\s([А-Яа-я]+))?\./g;
b=a.match(reg);
c=new Array;
for(i=0;i<b.length;i++){
document.write(b[i]+'<br>');
c[i]=b[i].replace(reg,'$1,$2,$3').split(/,/);
}
for(i=0;i<c.length;i++){
document.write(c[i]+'<br>');
}
</script>
</body>
</html>
|
Рони,спасибо огромное!!!Настоящий профессор!:thanks:
|
Опять не получается...
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script>
a="Мама мыла.Старший сын пошел учиться.Щенок гавкал.";
reg=/([А-Яа-я]+)\s([А-Яа-я]+)((\s([А-Яа-я]+)\s([А-Яа-я]+))?\./g;
b=a.match(reg);
c=new Array;
for(i=0;i<b.length;i++){
c[i]=b[i].replace(reg,'$1,-,$2,$4,$5');
c[i]=c[i].split(/,/);
for(j=0;j<c[i].length;j++){
document.write(c[i][j]+'<br>');
}
}
document.write("<table border=1>");
for (i = 0; i <с[i].length; i++)
{document.write("<tr>");
for (j = 0; j < с[j].length; j++)
{document.write("<td>"+с[i][j]+"</td>")}
document.write("</tr>")
}
document.write("</table>");
</script>
</body>
</html>
|
dima***,
reg=/([А-Яа-я]+)\s([А-Яа-я]+)((\s([А-Яа-я]+)\s([А-Яа-я]+))?\./g лишняя скобка в регепсе с 22 строки перепутана русская с с английской + вместо длины массива используется длина ячейки с + желательно использовать var при обьявлении переменной Рабочий вариант ...
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
var a = "Мама мыла.Старший сын пошел учиться.Щенок гавкал.",
reg = /([А-Яа-я]+)\s([А-Яа-я]+)(\s([А-Яа-я]+)\s([А-Яа-я]+))?\./g,
b = a.match(reg),
c = new Array;
for (i = 0; i < b.length; i++) {
c[i] = b[i].replace(reg, '$1,-,$2,$4,$5');
c[i] = c[i].split(/,/);
}
for (i = 0; i < c.length; i++) {
document.write(c[i] + '<br>');
}
var i, j;
document.write("<table border=1>");
for (i = 0; i < c.length; i++) {
document.write("<tr>");
for (j = 0; j < c[i].length; j++) {
document.write("<td>" + c[i][j] + "</td>")
}
document.write("</tr>")
}
document.write("</table>");
</script>
</body>
</html>
P.S. может придумать иную форму обучения ? |
Блин,такие тупые ошибки....
Цитата:
А и спасибо большое,конечно! |
| Часовой пояс GMT +3, время: 02:35. |