今天的js中使用了自定义的原型方法去重后,再调用这个获取的去重的数组传入另一个含有for循环的方法时,
console.log出错:
dimensions:createTime,华联石化,海油石化,青岛石化,石大科技,齐鲁石化,华龙石化,胜利油田,鑫泰石化,聊城石化,
function () { var arr = []; for (var i = 0; i < this.length; i++) { if (arr.indexOf(this[i]) == -1) { arr.push(this[i]); } } return arr; }
下面居然打印了去重的方法代码.
查看了下解决方式,使用array.slice()即可.
dimensions:createTime,A公司0,B公司1,C公司2,D公司3
看了一下调用不到call
但是slice()就直接转了.
Array.prototype.slice表示数组的原型中的slice方法
//slice的内部实现 Array.prototype.slice = function(start,end){ var result = new Array(); start = start || 0; end = end || this.length; //this指向调用的对象,当用了call后,能够改变this的指向,也就是指向传进来的对象,这是关键 for(var i = start; i < end; i++){ result.push(this[i]); } return result; }