Вывести циклом числа наиболее компактно
Помогите вывести циклом следующие числа наиболее компактно, одним циклом...ну или как-то корректней, чтобы они были значением одной переменной
1,2,3,4,5,6,5,4,3,2 for(i=0; i<5; i++) document.write(i) for(i=5; i>2; i--) document.write(i) |
Если вам надо одним циклом, то вот:
<script type="text/javascript"> var a = []; for ( var i = 0, n = 0; i < 10; i++, n = i > 5 ? n - 1 : n + 1 ) a.push( n ); alert( a ); </script> |
Только n = 1:)
<script type="text/javascript"> var a = []; for ( var i = 0, n = 1; i < 10; i++, n = i > 5 ? --n : ++n ) a.push( n ); document.write( a ); </script> |
ещё вариант для любых других подобных последовательностей )))
<script language="JavaScript" type="text/javascript"> function foo(c) { for (var a = [], b = 1; b <= c; b++) a[a.length] = b; if (a.length > 2) a = a.concat(a.slice(1, a.length - 1).reverse()); return a }; document.write(foo(1)+'<br />'); document.write(foo(2)+'<br />'); document.write(foo(3)+'<br />'); document.write(foo(4)+'<br />'); document.write(foo(5)+'<br />'); document.write(foo(6)+'<br />'); document.write(foo(7)+'<br />'); </script> |
Можно короче и понятнее:
<script type="text/javascript"> function foo( a ) { var p = []; for ( var i = 1, n = 1; n < a * 2; n < a ? i++ : i--, n++ ) { p.push( i ); } return p; } document.write( foo( 10 ) ); </script> |
Цитата:
<script> Array.prototype.increment = function(){ var count = arguments[0] while(count--) this.push(this[this.length-1] + 1) return this } Array.prototype.decrement = function(){ var count = arguments[0] while(count--) this.push(this[this.length-1] - 1) return this } var a = [1], b = [2] a.increment(5).decrement(4) document.write('Для ТС: '+a) document.write('<br>Просто: '+b.decrement(5).increment(10).decrement(5)) </script> |
Часовой пояс GMT +3, время: 02:50. |