关于Array中的every方法中求解释解决思路
关于Array中的every方法中求解释
有一段这个不太懂
------解决思路----------------------
------解决思路----------------------
执行fun后如果有一个返回false则返回false
------解决思路----------------------
every = 批量检查。确保每个值都合格.
执行过程 : 遍历数组,把每个值丢进 func 内 ,func返回一个布尔值,如果是true就继续遍历到完,结果你会得到true, 全部合格啦
如果遍历到一半有一个false,那么就中断,结果你会得到 false . 有不合格的值。
if (!Array.prototype.every)
{
Array.prototype.every = function(fun /*, thisp*/) //两个参数,有一个叫thisp的被注释了
{
var len = this.length; //获取函数形参个数存为len
//判断是否为函数类型,不是就创建一个报错类型提示
if (typeof fun != "function")
throw new TypeError();
var thisp = arguments[1]; //把刚刚注释掉的thisp作为形参第二个。
for (var i = 0; i < len; i++) //按照形参个数依次循环0和1
{
//这边的 i in this 没理解。。。还有下面回调中为什么要有this[i],i,this?
if (i in this &&
!fun.call(thisp, this[i], i, this))
return false;
}
return true;
};
}
有一段这个不太懂
if (i in this &&
!fun.call(thisp, this[i], i, this))
return false;
}
------解决思路----------------------
var $a = new Array();
$a[3]=7;
function do1(val,key,obj){
}
------解决思路----------------------
执行fun后如果有一个返回false则返回false
------解决思路----------------------
every = 批量检查。确保每个值都合格.
执行过程 : 遍历数组,把每个值丢进 func 内 ,func返回一个布尔值,如果是true就继续遍历到完,结果你会得到true, 全部合格啦
如果遍历到一半有一个false,那么就中断,结果你会得到 false . 有不合格的值。