Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Робота с массивами (https://javascript.ru/forum/events/28188-robota-s-massivami.html)

ToSHa23 10.05.2012 19:14

Робота с массивами
 
Помогите, пожалуйста, с задачей:

Создайте Web-страницу, в которой с помощью метода prompt вводятся числа и запоминаются в двух массивах. Признаком окончания ввода каждого массива является пустая строка. Затем строится массив, являющийся пересечением двух введенных массивов (в массиве-пересечении содержатся только те элементы, которые есть и в первом, и во втором массивах). Получившийся массив выводится с помощью метода alert.

Проблема в том, что я не знаю, как задать пересечение массивов, если я не ошибаюсь, то функции такой не существует для массивов, остальное работает.

<html>
<head>
<title>
laba 9
</title>
</head>
<body>
<script>
var a=new Array;
var b=new Array;
var c=new Array;

var func;

for (n=0;; n++) {
func=prompt('Введите элемент массива a['+n+']: ', "");
if (func=="") {
break;
}
}
for (m=0;; m++) {
func=prompt('Введите элемент массива b['+m+']: ', "");
if (func=="") {
break;
}
}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if (a[i]==b[j])
c[i]=a[i]=b[j];
alert ('\n пересечение массивов a и b='+c[i]);
</script>
</body>
</html>

vadim5june 10.05.2012 19:20

я бы вместо
c[i]=a[i]=b[j];
поставил
c.push(a[i]);
а вместо
alert ('\n пересечение массивов a и b='+c[i]);
alert ('\n пересечение массивов a и b='+c);

ToSHa23 10.05.2012 19:26

Там конец не совсем верный. То есть "c.push(a[i])" - это и есть пересечение двух массивов?

vadim5june 10.05.2012 19:29

Цитата:

Сообщение от ToSHa23 (Сообщение 173607)
Там конец не совсем верный. То есть "c.push(a[i])" - это и есть пересечение двух массивов?

это мы один элемент туда заносим а в конце цикла там(в с) окажется пересечение массивов

ToSHa23 10.05.2012 19:32

То есть тоже самое мы делаем с массивом b, а в конце приравниваем или как?

Раед 10.05.2012 19:42

<html>
<head>
<title>
laba 9
</title>
</head>
<body>
<script>
var a=[], b=[], c=[];

var func;

for (n=0;; n++) {
func=prompt('Введите элемент массива a['+n+']: ', "");
if (func=="") {
break;
}
a.push(func);
}
for (m=0;; m++) {
func=prompt('Введите элемент массива b['+m+']: ', "");
if (func=="") {
break;
}
b.push(func);
}
for(i=0;i<n;i++) for(j=0;j<m;j++) if (a[i]==b[j]) c.push(a[i]);
alert ('\n пересечение массивов a и b='+c);
</script>
</body>
</html>

ToSHa23 10.05.2012 19:47

Не получается, выводит около десятка запятых и все

ToSHa23 10.05.2012 19:49

Спасибо большое, получилось...)


Часовой пояс GMT +3, время: 11:48.