Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Не могу решить задачку. (https://javascript.ru/forum/project/68787-ne-mogu-reshit-zadachku.html)

404flanker 09.05.2017 00:20

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

Все минимальные и максимальные значение поменять местами
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);

помогите, плз. :help:

рони 09.05.2017 00:43

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

404flanker 09.05.2017 11:33

рони, спасибо.
А без применения функции можно? С помощью 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);

404flanker 09.05.2017 11:43

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


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