一道javascript题

腾讯也挺会推销自己的“问问”系统,弹窗说什么添加了关注的问题分类就有积分。我就随便加了两个擅长的分类。心想既然加了,那就进去看看有没有有意思的题目吧,呵呵。

有这么一道js题,挺有意思,有当时学数据结构时做题的感觉:

把一个自然数N变成一个从0到N-1的数组,例如N=5,通过运行脚本后,得到N=[0,1,2,3,4]的数组。要求不使用任何变量(N除外),N的值由输入提示框得到,并且通过警告窗口输出数组中所有的值。

题目要求不能用别的变量,但是n变成数组后,就有了很多可用变量了。因为题目的意思是,输入一个整数后,把n变成输入数字长度的数组,虽然n的类型变了,但是用户输入的n并没有丢掉,通过n.length还是可以得到初始的n。

然后,就有数组的n个变量可以使用了。代码如下:

function foo(){

var n = prompt(‘请输入n的值’,’5’);

try{

n = parseInt(n);

}catch(e){

alert(e.message);

}

n = new Array(n);

n[n.length-1] = n.length-1;

n[n.length-1]–;

while(n[n.length-1]>=0){

n[n[n.length-1]]=(n[n.length-1]–);

}

n[n.length-1]=n.length-1;

alert(n);

}

加载评论框需要翻墙