Не могу решить задачку.
Доброго времени суток,
Я новичок, поэтому не судите строго. Есть задача и знаю ответ, но не могу решить. Все минимальные и максимальные значение поменять местами 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: |
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 |
рони, спасибо.
А без применения функции можно? С помощью 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); |
рони,
Спасибо, почитал ссылки разобрался. + в карму. |
Часовой пояс GMT +3, время: 19:27. |