1、数组去重。

方法一:

var arr = [1,2,3,4,5,1,3,12,55,22];
function getArray(a){
	var obj = {},
	resultArray = [];
	for(var i=0;i<a.length;i++){
   		obj[a[i]]=a[i];
		console.log(obj);//纯数字时自带排序
	}
	for(var i in obj){
		resultArray.push(obj[i]);
	}
	console.log(resultArray);
}
getArray(arr);//[1, 2, 3, 4, 5, 12, 22, 55]

方法二:不存储排序,只利用hash去重

var arr = [1,2,3,4,5,1,3,12,55,22];
function getArray2(a){
	var obj = {},
	resultArray = [];
	for(var i=0;i<a.length;i++){
		if(!obj[a[i]]){
			obj[a[i]]=true;     
			resultArray.push(a[i]);
		}
	}
	console.log(resultArray);
}
getArray2(arr);//[1, 2, 3, 4, 5, 12, 55, 22]

2、给一个字符串,输出里面的字母分别出现的次数。

将上题中的hash值改为计数器就可以了:

var string = "serdtfyghjhbuygfct";
function getCount(str){
	var obj = {},
	         a = str.split(""); 
	for(var i=0;i<a.length;i++){
		if(!obj[a[i]]){
			obj[a[i]]=1;//发现是新的value
		}else{
			obj[a[i]]+=1;
		}
	}
	console.log(obj);
}
getCount(string);//Object {s: 1, e: 1, r: 1, d: 1, t: 2…}