Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.05.2017, 00:20
Новичок на форуме
Отправить личное сообщение для 404flanker Посмотреть профиль Найти все сообщения от 404flanker
 
Регистрация: 09.05.2017
Сообщений: 3

Не могу решить задачку.
Доброго времени суток,
Я новичок, поэтому не судите строго.
Есть задача и знаю ответ, но не могу решить.

Все минимальные и максимальные значение поменять местами
a = [5,7,1,2,7];
b = [2,8,1,1,5];

Ответом будет:
a = [5,8,1,2,8];
b = [2,7,1,1,5];

Т.е. в массиве а большие 7 меняем на 8, а в массиве b 8 на 7.

Написал этот код, но он не очень ( Не работает.

a=[5,7,1,2,7];
b=[2,8,1,1,5];
maxa=a[0];
maxb=b[0];

for(i=0;i<a.length;i++)
if(a[i]>maxa) maxa=a[i];
if(a[i]==maxa) a[i]=maxb;

for(j=0;j<b.length;j++)
if(b[j]>maxb) maxb=b[j];
if(b[j]==maxb) b[j]=maxa;


document.write(a+"<br>"+b);

помогите, плз.
Ответить с цитированием
  #2 (permalink)  
Старый 09.05.2017, 00:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

404flanker,
<script>
var a = [5,7,1,2,7],
    b = [2,8,1,1,5],
    aMin = Math.min.apply(null,a),
    aMax = Math.max.apply(null,a),
    bMin = Math.min.apply(null,b),
    bMax = Math.max.apply(null,b);
    a.forEach(function(item, i, arr) {
    if(item == aMin) arr[i] = bMin;
    if(item == aMax) arr[i] = bMax;
});
   b.forEach(function(item, i, arr) {
    if(item == bMin) arr[i] = aMin;
    if(item == bMax) arr[i] = aMax;
});
document.write(a+ "<br>" + b)
  </script>

https://learn.javascript.ru/array-iteration
https://learn.javascript.ru/call-apply#метод-apply
Ответить с цитированием
  #3 (permalink)  
Старый 09.05.2017, 11:33
Новичок на форуме
Отправить личное сообщение для 404flanker Посмотреть профиль Найти все сообщения от 404flanker
 
Регистрация: 09.05.2017
Сообщений: 3

рони, спасибо.
А без применения функции можно? С помощью if, if else, for?

Я так написал, но не работает:

a=[5,7,1,2,7];
b=[2,8,1,1,5];
maxa=a[0];
maxb=b[0];

for(i=0;i<a.length;i++)
if(a[i]>maxa) maxa=a[i];
if(a[i]==maxa) a[i]=maxb;

for(j=0;j<b.length;j++)
if(b[j]>maxb) maxb=b[j];
if(b[j]==maxb) b[j]=maxa;

document.write(a+"<br>"+b);
Ответить с цитированием
  #4 (permalink)  
Старый 09.05.2017, 11:43
Новичок на форуме
Отправить личное сообщение для 404flanker Посмотреть профиль Найти все сообщения от 404flanker
 
Регистрация: 09.05.2017
Сообщений: 3

рони,
Спасибо, почитал ссылки разобрался.
+ в карму.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу решить ошибку в Angular!? maxprof Angular.js 4 27.07.2015 16:24
Помогите решить задачку на jQuery. Готов заплатить. shevgeny Javascript под браузер 1 05.05.2014 12:07
Не могу решить задачку по js! Илья! Общие вопросы Javascript 4 25.08.2011 20:26
Не могу решить задачу: Добавление цитаты в textarea,где находистся курсор dummer jQuery 1 24.12.2009 18:17
помогите решить задачку с while natalia120390 Общие вопросы Javascript 46 16.06.2009 17:32