问题描述:
随机生成一个[min,max]区间内的整数
程序如下:
var getRandomInt = function(min,max) {
var r = Math.round(Math.random()*(max-min) + min)
return Math.max(Math.min(r,max),min)
}
getRandomInt(10,86) //52 or 10<=other<=86
问题描述:
有一个长度为100的数组,以优雅的方式求出该数组的前10个元素之和
var arr = [1,2,3,4,5,6,...,99,100]
var getSum = function(array) {
//你的代码
}
getSum(arr) //55
程序如下:
var getSum = function(array) {
//你的代码
return array.slice(0,11).reduce(function(pre,cur) {
return pre + cur
},0)
}
问题描述:
不使用loop循环,创建一个长度为100的数组,并且每个元素的值等于于它的下标
程序如下:
var creArr = function() {
var arr = Array(100).join(',').split(',').map(function(item,idex) {
return idex
})
return arr
}
creArr()
问题描述:
var a = {n:1};
var b = a; // 持有a,以回查
a.x = a = {n:2};
alert(a.x);// ?
alert(b);//?
输出:
alert(a.x);// undefined
alert(b);// {n:1,x:{n:2}}
程序解析:
var a = {n:1}; /*定义a,赋值为{n:1},假设指向存储地址为add_1*/
var b = a; /*定义b,赋值为a,指向同一存储地址add_1*/
a.x = a = {n:2};
/*(1):定义a.x,赋值为a,即{n:1},存储地址add_1上面的内容被更改
(2):a.x重新赋值为{n:2},存储地址add_1上面的内容被更改
(3):a重新赋值为{n:2},更改存储地址add_2
*/
alert(a.x);/*现在a的存储地址add_2,内容为{n:2},上面并不存在a.x属性,所以为undefined*/
alert(b);/*现在b的存储地址add_1,内容为{n:1,x:{n:2}}*/