13.05.2013, 18:25
|
Новичок на форуме
|
|
Регистрация: 13.05.2013
Сообщений: 3
|
|
Помогите решить задачу с массивами
Всем привет! Я чайник в JS помогите разобраться с задачами.
Задача №1
Реализовать алгоритм. Дан массив целых чисел с индексами от 0 до N, необходимо реализовать поиск числа A среди элементов массива.
Выводим на экран номер найденного числа, иначе выводим строку 'Not found'.
Задача №2
Реализовать алгоритм. Дано два массива чисел с индексами от 0 до N, необходимо вывести на экран все числа которые одновременно присутствуют в обоих массивах.
|
|
13.05.2013, 18:34
|
|
Профессор
|
|
Регистрация: 17.01.2013
Сообщений: 887
|
|
привет! что конкретно не понятно? или хотите чтоб с нуля написали
|
|
13.05.2013, 18:39
|
Новичок на форуме
|
|
Регистрация: 13.05.2013
Сообщений: 3
|
|
лучше с нуля потому что вообще не пойму как это сделать. Почитал про массивы, как применить так и не понял.
|
|
13.05.2013, 18:41
|
|
Профессор
|
|
Регистрация: 17.01.2013
Сообщений: 887
|
|
тогда лучше перенести в раздел работа
|
|
13.05.2013, 23:42
|
|
Профессор
|
|
Регистрация: 17.01.2013
Сообщений: 887
|
|
еслиб хоть какое-то начало было. а так выходит у меня какое-то задание а вы делайте
|
|
14.05.2013, 03:36
|
|
Профессор
|
|
Регистрация: 22.06.2012
Сообщений: 168
|
|
Сообщение от 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, необходимо вывести на экран все числа которые одновременно присутствуют в обоих массивах.
|
В исходных массивах могут быть повторяющиеся элементы?
Последний раз редактировалось Demath, 14.05.2013 в 04:12.
|
|
14.05.2013, 08:06
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
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)
|
|
14.05.2013, 16:19
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
№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)) ;
В ишаке это, по-моему, не работает
__________________
★ ²º¹³ ☆
Последний раз редактировалось Hekumok, 14.05.2013 в 16:43.
|
|
14.05.2013, 23:37
|
Новичок на форуме
|
|
Регистрация: 14.05.2013
Сообщений: 4
|
|
Здравствуйте,
Я новичек в 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]));
Последний раз редактировалось awoth, 15.05.2013 в 06:38.
Причина: add
|
|
15.05.2013, 00:38
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
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()
__________________
★ ²º¹³ ☆
Последний раз редактировалось Hekumok, 15.05.2013 в 00:46.
|
|
|
|