品一品编程 --- 4

问题描述:

随机生成一个[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}}*/ 

你可能感兴趣的:(品一品编程 --- 4)