当 arr 是一个array时,写Java开始的corner case常常会写类似下面的语句: if(arr == null || arr.length == 0){ return 0; } 其实这是两个条件, arr==null 和 arr.length==0 是不同的: arr.length == 0说明 arr is an empty array, which means an empty array is assigned to arr; arr.length would yields…
w 目的:订房页面,已被预订的房间的时间段的区域td点击不弹出bootstrap模态框. <script> var w = document.querySelectorAll("td"); console.log(w); for (var wi = 0, wl = w.length; wi < wl; wi++) { var wattr = w[wi].style.backgroundColor console.log(wattr) if (wattr == 'yel…
for (var i = 0; i < 10; i++) { arr.push(i) } function arrSlice(arr, num) { var arr1 = []; for (var i = 0; i < arr.length / num; i++) { arr1.push(arr.slice(num * i, num * i + num)) } return arr1; } var arr3=[]; arr3 = arrSlice(arr, 2) //将数组弄成下标分组…
function noRepeat(arr) { var arr1 = []; for (var i = 0; i < arr.length; i++) { var item = arr[i]; if (arr1.indexOf(item) === -1) arr1.push(item); } return arr1; } console.log(noRepeat(arr));…
w通过元素背景色定位元素,改变其属性. style="background-color: #FF6600" <script> var w = document.querySelectorAll("td"); console.log(w); for (var wi = 0, wl = w.length; wi < wl; wi++) { var wattr = w[wi].style.backgroundColor console.log(wattr…
一,题目分析:可以使用数组的归并方法计算,reduce和reduceRight.二者作用几乎相同.只是归并方向相反.reduce和reduceRight都可以接收两个参数.第一个是在每一项上调用的函数,第二个是归并基础的初始值. 二,解题. function sum(arr){ var sum=0; if(Array.prototype.reduce){ sum = arr.reduce(function(prev,cur,index,arr){ return prev+cur; }); ret…
今天在改代码的时候发现有很多代码的循环是用 for(var i in data)写的,我通常都是用for(var i=0;i<data.length;i++) 就查看了一下,原来这两个是有区别的,不能等同使用. <script> // 这是for ines6里面是for of Array.prototype.test = function () { }; function a (){var arr = [1, 2];for (var i in arr){alert(i+"--…
之前遇到过这个问题,但是没找到问题的所在,将for(var i in array){} 改成了for(var i ;i<array.length;i++)循环,但是今天又遇到了,mark一下错误. 由于需要将后台传过来的数据进行排序,所以我在这个页面里面的Array扩展了一个方法: 那么问题来了,当刷新页面的时候,common中的方法抛出异常, 遍历29次之后有遍历了一次自己扩展的方法.由于不是temp中的,所以多了一项underfined. 解决方法: (1).将for(var i in a…
问题 缓存 Array.length 是老生常谈的小优化. // 不缓存 for (var i = 0; i < arr.length; i++) { ... } // 缓存 var len = arr.length; for (var i = 0; i < len; i++) { ... } // 或者 for (var i = 0, len = arr.length; i < len; i++) { ... } 但以前写过 Java 的笔者一直对这种破碎的写法感到不适,也对这种写法的…
在JS性能优化中,有一个常见的小优化,即 // 不缓存 for (var i = 0; i < arr.length; i++) { ... } // 缓存 var len = arr.length; for (var i = 0; i < len; i++) { ... } 第二种方式是大多数的程序猿推荐的一种写法,据说是有利于性能提升,本人没有检测过,但是找到一篇相关文章:http://www.crimx.com/2015/04/21/should-array-length-be-cach…