利用对象的属性不会重复的原理进行去重
把数组里的每一位放在对象里面,当做它的属性名,挨个访问这对象的属性名看有没有这个属性值
<script>
var arr =[1,1,1,2,2,2,2,2,3,3,5,6,7];
Array.prototype.unique = function(){
var temp = {},
arr = [],
len = this.length;
for(var i = 0;i<len;i++){
// 拿出当前对象的当前的数组位
if(!temp[this[i]]){
temp[this[i]] = 'abc';
arr.push(this[i]);
}
}
return arr;
}
</script>
typeof的封装
<script>
function type(target){
var ret = typeof(target);
var template = {
'[object Object]':'object-Object',
'[object Array]':'array-Object',
'[object Number]':'number-Object',
'[object Boolean]':'boolean-Object',
'[object String]':'string-Object'
}
if(target===null) {
return null;
}else if(ret == 'object'){
var str = Object.prototype.toString.call(target);
return template[str];
}else{
return ret;
}
}
</script>