[js] - js中类(伪)数组装正规数组

今天的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; } 

原文地址:

https://blog.csdn.net/hefeng6500/article/details/76167867

https://www.cnblogs.com/guorange/p/6668440.html

猜你喜欢

转载自www.cnblogs.com/ukzq/p/10436187.html