数组去重;字符串按千位分割;找出出现最多的字符
1.数组去重:
function splicearr(arr){
var objects={};
var newarr=[];
//把数组元素放在对象中(对象是键值对,成对出现,让取出的元素作为键,值随便赋值为1)
for(var i=0;i<arr.length;i++){
objects[arr[i]]=1;
}
//把键取出来放在数组中
for(var key in objects)
{
newarr.push(key);
}
return newarr;
}
var x=[1,2,3,2];
alert(splicearr(x));
2.千位分割
function splice(numbers){
var str="";
//numbers="123456789"判断是否是4位的整数,不是就直接截取给str; 截取结果为1,
var remaider=numbers%4;
if(remaider%4!=0){
str+=numbers.substring(0,remaider);
str+=",";
}
//把剩下的字符长度,每四位截取出来
for(var i=remaider;i<numbers.length;i+=4){
str+=numbers.substring(i,i+4);
str+=",";
}
//把最后一个逗号截取掉
return str.substring(0,str.length-1);
}
var sp=splice("1234568974");
alert(sp);
3.找出出现最多的字符
function max_strip(str){
/*例如 一个字符串sabac
把每一个字符串截取出来放到对象中,利用键值对的键不会重复这一特性
*/
var objects={};
for(var i=0;i<str.length;i++){
if(!(str[i] in objects)){//判断对象的键是否存在,不存在就为键赋值为1,存在就另值加1
objects[str[i]]=1;
}else
{
objects[str[i]]+=1;
}
}
/*到此得到的结果为{s:1,a:2,b:1,c:1}*/
//取出对象中值最大的数,切对应的键
var num=0;//声明用来接受最大值的变量
var letter="";//存储最大值对应的键
for(var key in objects){
if(objects[key]>num){
num=objects[key];
letter=key;
}
}
return [letter, num];
}
var maxstrip=max_strip("sdabacc");
alert("出现最多的字符是:"+maxstrip[0]+"出现的次数为:"+maxstrip[1]);