赞
踩
1.给定一个升序数组,如何找到连续的元素,并返回连续元素组成的序列?例如,给定数组[1,2,3,4,6,9,22,23],返回数组[“1->4”,“6”,“9”,“22->23”]
function continuousArray(arr){ var newArr=[""+arr[0]]; for(var i=1;i<arr.length;i++){ newArr.push(""+arr[i]); if(arr[i]==arr[i-1]+1&&arr[i]==arr[i+1]-1){ newArr.pop(); } if(arr[i]==arr[i-1]+1&&arr[i]!=arr[i+1]-1){ newArr.pop(); var num=newArr.pop(); newArr.push(num+"->"+arr[i]); } } return newArr; } console.log(continuousArray([1,2,3,4,6,9,22,23]));
2.判断一个串是否在另一个串中有序出现
function checkout(str1,str2){
var arr1=str1.split("");
var arr2=str2.split("");
for(var i=0;i<arr2.length;i++){
if(arr2[i]==arr1[0]){
arr1.shift();
}
}
if(arr1.length){
return false;
}else{
return true;
}
}
console.log(checkout("acb","abcde"));
3.删除字符串中出现最少的字符
function deleteWord(str){ var strArr=str.split(""); var obj={}; for(var i=0;i<strArr.length;i++){ if(obj[strArr[i]]){ obj[strArr[i]]++; }else{ obj[strArr[i]]=1; } } var arr=[]; for(var j in obj){ arr.push(obj[j]); } arr.sort((a,b)=>a-b); for(var x in obj){ if(obj[x]==arr[0]){ delete obj[x]; } } return obj; } console.log(deleteWord("abscdsahhsaaa"));
4.括号匹配问题
function checkout(str){ var newArr=str.split(""); var map={'(':-1,')':1,'[','-2',']':2}; var arr=[]; for(var i=0;i<newArr.length;i++){ if(map[newArr[i]]<0){ arr.push(newArr[i]); }else{ let last=arr.pop(); if(map[last]+map[newArr[i]]!=0) return false; } } if(arr.length){ return false; }else{ return true; } } console.log(checkout('(([])[]]'));
5.统计字符串中字母的个数
function count(str) { let arr=str.split(""); let obj={}; for(let i=0;i<arr.length;i++){ let v=arr[i]; if(obj[v] && obj[v].value==v){ obj[v].count= ++obj[v].count; }else{ obj[v]={}; obj[v].count=1; obj[v].value=v; } } for(key in obj){ console.log(`${obj[key].value}=${obj[key].count} `); } } count("aaaabbbccccddfgh");
6.合并有序数组
let a=[2,6,10,12]; let b=[4,6,12,78]; function merge(a,b){ let arr=[]; while(a.length && b.length){ if(a[0]<=b[0]){ arr.push(a.splice(0,1)[0]); }else{ arr.push(b.splice(0,1)[0]); } } if(a.length||b.length){ arr=arr.concat(a,b); } return arr; } console.log(merge(a,b));
7.数组去重
//第一种 function removeDuplicate1(arr){ let newArr=[]; for(let i=0;i<arr.length;i++){ if(newArr.indexOf(arr[i])==-1){ newArr.push(arr[i]); } } return newArr; } //第二种 function removeDuplicate2(arr){ return Array.from(new Set(arr)); } //第三种 function removeDuplicate3(arr){ let result = arr.reduce((cur,next)=>{ cur.indexOf(next)!=-1?"":cur.push(next); return cur; },[]); return result; } let arr=[9,4,5,2,4,3,2,6,9]; console.log(removeDuplicate3(arr));
8.数组中有9个互不相等的1-10的数,查找1-10中不再数组中的数
function find(arr){
for(var i=1;i<=10;i++){
if(arr.indexOf(i)==-1){
console.log(i);
break;
}
}
}
var arr=[7,4,5,3,2,8,1,10,6];
find(arr);
9.给出一个只含有1和0的字符串,求最长的连续1字符串的长度
function count(str){
let newArr=str.split("0");
let max=newArr[0].length;
for(let i=1;i<newArr.length;i++){
if(newArr[i].length>max){
max=newArr[i].length;
}
}
console.log(max);
}
let str="11011101011011110";
count(str);
10.计算n!递归
function Recursive(n){
if(n<=1){
return n;
}
return n*Recursive(n-1);
}
console.log(Recursive(5));
11.找出[1000,990000]的所有对称数
function find(a,b){
var newArr=[];
for(var i=a;i<=b;i++){
var num=parseInt(i.toString().split("").reverse().join(""));
if(i==num){
newArr.push(i);
}
}
return newArr;
}
console.log(find(1000,990000));
12.给出字符串输出千分位的格式
function splitStr(str){
if(str.length<=3) return str;
//?=exp零宽断言
str=str.replace(/\w{1,3}(?=(\w{3})+$)/g,(v)=>{
return v+',';
});
return str;
}
console.log(splitStr("snchdskdskjdksjdkaldjal"));
13.查询字符串参数
function getQueryStringArgs(){ var qs=(location.search.length>1?location.search.substring(1):""); args={}, items=qs.length?qs.split("&"):[], item=null, name=null, value=null, i=0, len=items.length; for(i=0;i<len;i++){ item=items[i].split("="); name=decodeURIComponent(item[0]); value=decodeURIComponent(item[1]); if(name.length){ args[name]=value; } } return args; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。