采用的是Object的 in 操作符,体现一把它的强大(有更好的办法来实现这个功能,但是这里只是演示 in 操作符)!
问题原地址:http://bbs.blueidea.com/viewthread.php?tid=2795905&pid=3606346&page=1&extra=page%3D1#pid3606346
<script> Array.prototype.distinct = function(){ var $ = this; var o1 = {}; var o2 = {}; var o3 = [];
var o; for(var i=0;o = $[i];i++){ if(o in o1){ if(!(o in o2)) o2[o] = o; delete $[i]; }else{ o1[o] = o; } } $.length = 0; for(o in o1){ $.push(o); } for(o in o2){ o3.push(o); } return o3; } var a = [2,2,2,3,3,3,4,4,5,6,7,7]; alert("原数组:" + a); alert("有重复的元素是:" + a.distinct()); alert("整理后的数组是:" + a); alert("整理后的长度是:" + a.length) </script> |