去重
七种数组遍历的方法
- forEach - 普通的数组遍历方法
- map - 映射 - 每一次 遍历 返回一个数组元素 - 返回一个新的数组
- filter - 过滤 每一个遍历 返回boolean,来决定当前元素是否纳入新的数组
- reduce - 归纳 每一次遍历,将元素收归到容器中
- reduceRight - reduce的反向操作
- every - 判定是否所有元素都符合一个条件
- some - 判定是否有某一个或多个符合一个条件
数组去重
var = [0,0,1,2,2,31,4,3,2,2,41,3,4,1,145,6,2,'a','ag','a'];
借用数组中key值唯一性来去重
Array.prototype.unique = function(){
var temp = {};
var newArr = [];
for (var i = 0; i < this.length; i++){
if(!temp.hasOwnProperty(this[i])){ -- 判断是否存在这一key值
// temp[0] = 0; !0 非0 因为0是false 所以非0为true
temp[this[i]] = this[i];
newArr.push(this[i]);
}
}
return newArr;
}
var obj = {'name':123} | obj.hasOwnProperty('name') -判断这个
字符串去重
var str = 'aufdsp2t4tt2bvr2rbkv';
String.prototype.unique = function(){
var temp = {}, newStr = '';
for(var i =0; i < this.length; i++){
if(!temp.hasOwnProperty(this[i])){
temp[this[i]] = this[i];
newStr += this[i];
}
}
return newStr;
}
# 对每一个字符进行出现的次数计数,返回只出现了一次的字符串
function test(str){
var temp = {};
for(var i = 0; i < str.length ; i++){
if(!temp.hasOwnproperty(str[i])){
temp[str[i]] ++;
}else{
temp[str[i]] = 1;
}
}
for (var key in temp){
if temp[key] === 1{
return key
}
}
}
封装typeof
返回值:array number string boolean object function undefined
function myTypeof(val){
var type = typeof(val); typeOf(function(){}) -自身会返回function
var toStr = Object.prototype.toString;
var res = {
'[object Array]':'array',
'[object Object]': 'oject',
'[object Number]': 'object number',
'[object String]': 'object string',
'[object Boolean]': 'object boolean'
}
if(val === null){
return 'null';
}else if(type === 'object'){
var ret = toStr.call(var) ;
return res[ret]; -- 中括号填写键名
}else{
return type;
}
}