Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите решить задачу с массивами (https://javascript.ru/forum/misc/37909-pomogite-reshit-zadachu-s-massivami.html)

Konstan_G 13.05.2013 18:25

Помогите решить задачу с массивами
 
Всем привет! Я чайник в JS помогите разобраться с задачами.

Задача №1
Реализовать алгоритм. Дан массив целых чисел с индексами от 0 до N, необходимо реализовать поиск числа A среди элементов массива.
Выводим на экран номер найденного числа, иначе выводим строку 'Not found'.

Задача №2
Реализовать алгоритм. Дано два массива чисел с индексами от 0 до N, необходимо вывести на экран все числа которые одновременно присутствуют в обоих массивах.

animhotep 13.05.2013 18:34

привет! что конкретно не понятно? или хотите чтоб с нуля написали

Konstan_G 13.05.2013 18:39

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

animhotep 13.05.2013 18:41

тогда лучше перенести в раздел работа

animhotep 13.05.2013 23:42

еслиб хоть какое-то начало было. а так выходит у меня какое-то задание а вы делайте

Demath 14.05.2013 03:36

Цитата:

Сообщение от Konstan_G
Задача №1
Реализовать алгоритм. Дан массив целых чисел с индексами от 0 до N, необходимо реализовать поиск числа A среди элементов массива.
Выводим на экран номер найденного числа, иначе выводим строку 'Not found'.

Например, так (максимальное время работы - O(n))

function findElem(A,Arr)
{
    var n=Arr.length, i=0;
 
    while (Arr[i]!=A && i<n) i++;
 
    if (i<n) alert(i);
    else alert('Not found');
}


Цитата:

Сообщение от Konstan_G
Задача №2
Реализовать алгоритм. Дано два массива чисел с индексами от 0 до N, необходимо вывести на экран все числа которые одновременно присутствуют в обоих массивах.

В исходных массивах могут быть повторяющиеся элементы?

рони 14.05.2013 08:06

:)
function findElem(A,Arr)
{
    var i=Arr.length;
    while (--i&&Arr[i]!=A) ;
    alert(i<0?'Not found':i);
}
var Arr = [1, 2, 3, 4, 5, 6, 7, 8, 19, 9, 16, 15, 65, 0];
findElem(9,Arr)

Hekumok 14.05.2013 16:19

№1
var array = [1, 2, 3, 4, 5] ;
function find(number) {
  var pos = array.indexOf(number) ;
  if(!~pos)
    pos = "Not found" ;
  alert(pos) ;
} ;
find(1) ;
find(6) ;
find(5) ;

№2
var array1 = [1, 2, 3, 4, 5], array2 = [1, 6, 0, 2, 5], array3 = [0, 3, 4, 7, 2] ;
function findElems(arr1, arr2) {
  return arr1.slice(0).filter(function(x) {
    if(~arr2.indexOf(x))
      return true ;
  }) ;
} ;
alert(findElems(array1, array2)) ;
alert(findElems(array1, array3)) ;
alert(findElems(array2, array3)) ;

В ишаке это, по-моему, не работает

awoth 14.05.2013 23:37

Здравствуйте,
Я новичек в JS, с имплементацией худо бедно справляюсь когда появляется необходимость но в этот раз гугл мне не помог (не смог разобраться с семантикой)- прошу помощи у вас.
Мне необходимо из многомерного массива вытащить элемент при совпадении соседних.
К примеру дано:
var parts=[ { type: 'b#1',		
							model: 'FD016',		//part#
							width: 24,			//param1
							depth: 48			//param2 
							},
						{ type: 'b#1',		//use
							model: 'FD017',		//part#
							width: 24,			//param1
							depth: 60			//param2 
							},
						{ type: 'b#2',		//use
							model: 'FD018',		//part#
							width: 24,			//param1
							depth: 72			//param2
							},
						{ type: 'b#2',		//use
							model: 'FD019',		//part#
							width: 24,			//param1
							depth: 96   		//param2
							},
						{ type: 'b#3',		//use
							model: 'FD020',		//part#
							width: 24,			//param1
							depth: 120  		//param2
							},
						{ type: 'b#3',		//use
							model: 'FD021',		//part#
							width: 24,			//param1
							depth: 48			//param2
							},
						];
			var depth = $('input[id=depth]').attr("value");
			var width = $('input[id=width]').attr("value");

Надо внести в инпут - model у которого width & depth совпадают с переменными


Пробовал


parts.filter(function (el) {
			 return parts.indexOf(el[width]);
			});
                       $('input[id=width]').val(parts.indexOf(el[width]));

Hekumok 15.05.2013 00:38

awoth,
var parts = [{
  type: 'b#1',
  model: 'FD016',
  width: 24,
  depth: 48
}, {
  type: 'b#1',
  model: 'FD017',
  width: 24,
  depth: 60
}, {
  type: 'b#2',
  model: 'FD018',
  width: 24,
  depth: 72
}, {
  type: 'b#2',
  model: 'FD019',
  width: 24,
  depth: 96
}, {
  type: 'b#3',
  model: 'FD020',
  width: 24,
  depth: 120
}],
input = $("#input") ; // ваш input, куда нужно вставить model
function find() {
  var depth = $('#depth').attr("value"),
  width = $('#width').attr("value") ;
  parts.some(function(x) {
    if(x.width == width && x.depth == depth) {
      input.val(x.model) ;
      return true ;
    } ;
  }) ;
}
// и когда вам нужно вызываете функцию find()


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