自己在练习的过程中,碰到一些典型的函数,在这里记录一下,包括
- 获取URL中的参数
- 每隔五秒运行一次函数直到1分钟停止,或者运行10次,先到的为准
- 倒计时(注意回调函数的作用域,i定义在循环外和循环内的区别)
- 判断数组里出现最多的字符,并统计出来
- 去掉一个数组的重复元素
//1. 获取url中的参数
function showWindowHref(){
const sHref="http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23";
const arr=sHref.split("?")
const arrnew=arr[1].split("&");
let obj={};
for(let i=0;i<arrnew.length;i++){
const arg=arrnew[i].split("=");
obj[arg[0]]=arg[1];
}
return obj;
}
const href=showWindowHref();
console.log(href['name']);
//2. 每隔五秒运行一次函数直到1分钟停止,或者运行10次,先到的为准
function timeTest(){
const start =new Date();
let i=0;
const intervalId=setInterval(function(){
let now=new Date();
if(now.getMinutes()!==start.getMinutes()||++i>10){
return clearInterval(intervalId);
}
console.log(`${i}:${now}`);
},3*1000);
}
//3. 倒计时
function countdown(){
console.log("Countdown:")
for(let i=5;i>=0;i--){ //let必须定义在for里面,定义在外面每次都为-1
setTimeout(function(){
console.log(i===0 ? "GO!" :i);
},(5-i)*1000);
}
}
countdown();
//4. 判断数组里出现最多的字符,并统计出来
function arrSameStr(arr){
let obj={};
for(let i=0;i<arr.length;i++){
if(!obj[arr.charAt(i)]){
obj[arr.charAt(i)]=1;
}else{
obj[arr.charAt(i)]++;
}
}
console.log(obj);
let max=0;
let index='';
for(let i in obj){
if(obj[i]>max){
max=obj[i];
index=i;
}
}
console.log("出现最多的是: "+index+"次数为"+max);
}
const arr='asdgsasasaaaasssa';
arrSameStr(arr)
//5. 去掉一个数组的重复元素
//(方法一)
function delEle(arr){
let obj={};
let tmp=[];
for(let i=0;i<arr.length;i++){
if(!obj[arr[i]]){
obj[arr[i]]=1;
tmp.push(arr[i]);
}
}
console.log(obj);
}
//(方法二:利用filter())
function delEleByFilter(arr){
let arr1=arr.filter(function(element,index,self){
return self.indexOf(element)===index;
});
console.log(arr1);
}
//(方法三:利用indexOf()没有则返回-1)
function delEleByIndexof(arr){
let arr1=[];
for(let i=0;i<arr.length;i++){
if(arr1.indexOf(arr[i])<0){
arr1.push(arr[i]);
}
}
console.log(arr1)
}
const arr1=[1,2,2,4,5,5,3,3,3];
delEle(arr1);
delEleByFilter(arr1);
delEleByIndexof(arr1)
网友评论