問題描述:
隨機生成一個[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}}*/