Сравнение в массиве массивов
Сравнение в массиве массивов по 2 показателям.C помощью for вывести на экран.
Что-то не получается...:( <script> function uh(x){ if(x[1]>x[2]) {return 1} else {return 0} } a=[['Мама',4,2],['Папа',2,3]]; for(i=0;i<a.length;i++){ document.write(a[i]+'<br>'); } c=uh(a[0]); //Без цикла получается document.write(c+'<br>'); c1=uh(a[1]); document.write(c1+'<br>'); c=new Array; //Не получается c=uh(a[i]); for(i=0;i<c.length;i++){ document.write(c[i]+'<br>'); } </script> |
dima***, что не совсем понял, тоесть сравнить значения первого массива в массиве и значение второго массива в массиве?
var a = [[1,2,3],[0,2,4]] for(i=0;i<a[0].length;i++) { if(a[0][i] == a[1][i]) { alert('значение '+a[0][i]+' первого массива совпало со значением '+a[1][i]+' второго массива'); } } |
Ruslan_xDD,нет.Нужно поочерёдно сравнить
a[0]- 1 и 2 элементы, a[1]- 1 и 2 элементы. Полученный результат вывести на экран с помощью цикла for/ |
var a = [[1,2,3],[0,2,4]] for(i=0;i<a[0].length;i++) { for(j=0;j<a[1].length;j++) { if(a[0][i] == a[1][j]) { alert(true); } } } Вот так что ли? :) |
Ruslan_xDD-нет.:(
Там просто нужно сравнить 1 и 2 элементы,сначала в одном массиве,потом в другом.Затем с помощью for вывести. Элементы из разных массивов сравнивать не нужно. Ну никак неполучается.Целый день сижу...:help: |
Цитата:
Распишите построчно какие элементы с какими сравниваем var a = [[1,2,3],[0,2,4]] 1. ? сравниваем 2 и 3 первого массива 2. ? сравниваем 2 и 4 второго массива |
1.в нулевом массиве сравниваем 1 и 2 элемент между собой
2.в первом массиве также сравниваем 1 и 2 элемент массива. 3.Выводим на экран через for. В скрипте(см. 1 топик) результат есть.Но нужно через for:help: |
dima***,
Индексация в массивах = с 0 или 1 ? |
с 0.
|
Так наверное будет понятнее.
Смысл этой задачи добавить ещё один столбец к существующей таблице. Вот весь скрипт: <script type="text/javascript"> function esli(x){ if(x[2]>x[3]) {return 1} else {return 0} } var a = "Мама мыла.Старший сын 4 2.Мама пришла 0 0.Щенок гавкал 6 8."; reg = /([А-Яа-я]+)\s([А-Яа-я]+)(\s(\d+)\s(\d+))?\./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>'); } /*m=new Array; m=esli(c[i]); for (i = 0; i<m.length; j++) { document.write(m[i]+'<br>'); }*/ var i, j; document.write("<table id=T1 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>"+'<br>'); </script> |
var a = [[1,2,2],[0,2,4]]; if(a[0][1]==a[0][2]) {alert("В Первом из массивов есть совпадение")} else{alert("В Первом из массивов нет совпадения")} if(a[1][1]==a[1][2]) {alert("В Втором из массивов есть совпадение")} else{alert("В Втором из массивов нет совпадения")} |
var a = [[1,2,3],[0,2,4]]; a[0][1] == a[0][2] ? alert(true) : alert(false); a[1][1] == a[1][2] ? alert(true) : alert(false); И зачем тут "for"? :) |
должно получиться в итоге:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Документ без названия</title> </head> <body> <table border=1> <tr> <td>Мама</td><td>мыла</td><td></td><td></td><td>0</td> </tr> <tr> <td>Старший</td><td>сын</td><td>4</td><td>2</td><td>1</td> </tr> <tr> <td>Мама</td><td>пришла</td><td>0</td><td>0</td><td>0</td> </tr> <tr> <td>Щенок</td><td>гавкал</td><td>6</td><td>8</td><td>0</td> </tr> </body> <html> |
Цитата:
|
Решение вот,но оно без for
<script> function uh(x){ if(x[1]>x[2]) {return 1} else {return 0} } a=[['Мама',4,2],['Папа',2,3]]; for(i=0;i<a.length;i++){ document.write(a[i]+'<br>'); } c0=uh(a[0]); //Без цикла получается document.write(c0+'<br>'); c1=uh(a[1]); document.write(c1+'<br>'); </script> |
Чему тут через for выводиться, вот так что ли? :)
var a = [[1,2,3],[0,2,4]]; for(i=0;i<a.length;i++) { (a[i][1] == a[i][2]) ? alert(true) : alert(false); } |
Сейчас посмотрю,вроде похоже...:)
|
Вроде,получилось!:dance:
А в таблицу потом как добавить?:( Спасибо большое! |
<table id="MyTable"></table> <script> var a = [[1,2,3],[0,2,4]]; for(i=0;i<a.length;i++) { if(a[i][0] == a[i][1]) { var b = document.getElementById('MyTable'); b.innerHTML = b.innerHTML + '<tr><td>'+a[i][0]+'</td><td>'+a[i][1]+'</td><tr>'; } } </script> Попробуйте так. |
Спасибо,завтра попробую.А то сегодня уже каша в голове.
|
dima***,
Вариант ... смотреть после пробы ))) <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <script type="text/javascript"> function esli(x){ if(x[3]>x[4]) {return 1} else {return 0} } var a = "Мама мыла.Старший сын 4 2.Мама пришла 0 0.Щенок гавкал 6 8."; reg = /([А-Яа-я]+)\s([А-Яа-я]+)(\s(\d+)\s(\d+))?\./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 id=T1 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("<td>" + +(c[i][3]>c[i][4]) + "</td></tr>") // document.write("<td>" + esli(c[i]) + "</td></tr>") //или так } document.write("</table>"+'<br>'); </script> </body> </html> |
Рони,как обычно,самое то!Спасибо огромное!:)
Ну,до чего же простое решение!!!Гениально! <script> function uh(x){ if(x[1]>x[2]) {return 1} else {return 0} } a=[['Мама',4,2],['Папа',2,3]]; for(i=0;i<a.length;i++){ document.write(a[i]+'<br>'); } /*c=uh(a[0]); //Без цикла получается document.write(c+'<br>'); c1=uh(a[1]); document.write(c1+'<br>'); */ c=new Array; //Не получается var i=0; c=uh(a[i]); for(i=0;i<c.length;i++){ document.write(c[i]+'<br>'); } </script> c=new Array; //Не получается c=uh(a[i]); for(i=0;i<c.length;i++){ document.write(c[i]+'<br>'); } Почему этот кусок не работает?Совсем код неправильный? |
Ruslan_xDD-спасибо большое!Твоё решение подошло для другого скрипта идеально!:)
|
dima***,
c=new Array; //обьявляем массив c=uh(a[i]);//массив превращаем во что попало так как i на данный момент 2 и a[2] несуществует скрипт останавливается for(i=0;i<c.length;i++){ document.write(c[i]+'<br>'); } рабочий код c=new Array; for(i=0;i<a.length;i++){ c[i]=uh(a[i]); document.write(c[i]+'<br>'); |
Цитата:
|
Да,заработало.В Dreamweawere не работало,нашёл ошибку.
Рони,ну ты соображаешь!спасибо за помощь! А если var i=0 поставить? c=new Array; //обьявляем массив var i=0; c=uh(a[i]);//массив превращаем во что попало так как i на данный момент 2 и a[2] несуществует скрипт останавливается for(i=0;i<c.length;i++){ document.write(c[i]+'<br>'); } |
Оставлю решение на форуме.Может кому пригодится...В интернете ничего подобного не нашёл.
<script type="text/javascript"> function esli(x){ if(x[2]==x[3]&&x[2]) {return 1} else {return 0} } var a = "Мама мыла.Старший сын 4 2.Мама пришла 0 0.Щенок гавкал 6 8."; reg = /([А-Яа-я]+)\s([А-Яа-я]+)(\s(\d+)\s(\d+))?\./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] +','+ esli(c[i])+'<br>'); } var i, j; document.write("<table id=T1 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("<td>" + +(c[i][2]==c[i][3]) + "</td></tr>") // document.write("<td>" + esli(c[i]) + "</td></tr>") //или так } document.write("</table>"+'<br>'); </script> |
Опять что-то не так!:help:
В массиве получается c[0][4]=1, в таблице c[0][4]=0. |
dima***,
оставьте свои координаты в личке -- незасоряйте форум |
dima***,
разберитесь с 3 строкой if(x[2]==x[3]&&x[2]!=null) здесь == а в 32 строке > |
Часовой пояс GMT +3, время: 20:42. |