发表于: 2017-04-20 22:03:46

1 1272


今天完成的事情:

1.写完任务4的第四个页面,完成任务4。

2.写完任务5的静态页面。

明天计划的事情:

学习HTTP协议,ajax,nginx反向代理和跨域。

遇到的困难:

1.写任务5的静态页面时要获取屏幕宽度需要用js来得到屏幕宽度,通过百度得知可以用document.documentElement.clientHeight来解决,于是我就用

var div_node=document.getElementsByTagName("div")[0];
var a=document.documentElement.clientHeight;

div_node.style.height=a;

来实现,结果不能获取页面高度。后来才发现原来是少了px单位,只有值没有单位,所以js不会报错,而且不能得到屏幕宽度。

2.今天还修改了之前js-2的一个bug,就是杀手和平民排序问题,而且杀手数量和平民数量符合条件。之前我是用

for (i = 0; i < tol;i++){
   ide = "平民";//初始值全部为平民
   arr.push(ide);
}
for(i = 0;i < killer;i++){
   var a = Math.floor(Math.random()*arr.length);
   arr.push(arr[a]);

   arr[a] = "杀手";

   arr.splice[tol];

   i--;

}

这种方法是错误的,因为在a=tol时,会把杀手值删掉,从而杀手数量比设定的时候少。后来我换了一种思路。在平民数组中插入杀手数值,就能解决该问题。

for (i = 0; i < tol-killer;i++){
   ide = "平民";//初始值全部为平民
   arr.push(ide);
}
for(i = 0;i < killer;i++){
   var a = Math.floor(Math.random()*arr.length);
   arr.push(arr[a]);
   arr[a] = "杀手";

}

收获:

1.学习jsDOM document.documentElement.Client获取屏幕宽高。

2.小课堂学习了数组遍历every、filter、map、some方法。

    every 方法为数组中的每个元素执行一次 callback 函数,直到它找到一个使 callback 返回 false(表示可转换为布尔值 false 的值)的元素。如果发现了一个这样的元素,every 方法将会立即返回 false。否则,callback 为每一个元素返回 true,every 就会返回 true。callback 只会为那些已经被赋值的索引调用。不会为那些被删除或从来没被赋值的索引调用。

    而some() 方法测试数组中的某些元素是否通过了指定函数的测试。

    fliter()方法是对数组中的每个元素都执行一次指定的函数(callback),并且创建一个新的数组,该数组元素是所有回调函数执行时返回值为 true 的原数组元素。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略,同时,新创建的数组也不会包含这些元素。

     map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。


返回列表 返回列表
评论

    分享到