09.05.2017, 00:20
|
Новичок на форуме
|
|
Регистрация: 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);
помогите, плз.
|
|
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
|
|
09.05.2017, 11:33
|
Новичок на форуме
|
|
Регистрация: 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);
|
|
09.05.2017, 11:43
|
Новичок на форуме
|
|
Регистрация: 09.05.2017
Сообщений: 3
|
|
рони,
Спасибо, почитал ссылки разобрался.
+ в карму.
|
|
|
|