1:括号匹配
function isMatch(str)
{
var map=new Map();
map.set('(',')');
map.set('{','}');
map.set('[',']');
var k=[];
for(let i=0;i<str.length;i++)
{
if(str[i]=='('||str[i]=='['||str[i]=='{')
{
k.push(str[i]);
}else{
if(str[i]===k[k.length-1])
{
k.pop();
}
else{
return false;
}
}
}
if(k.length>0)
{
return false;
}
else{
return true;
}
}
console.log(isMatch("(){()[{}]}"));
2:数组中的最长的子序列
function isMatch(str)
{
var max=0;
var cout=0;
for(let i=0;i<str.length;i++)
{
cout=0;
for(let j=i;j<str.length;j++)
{
cout+=str[j];
if(cout>max)
{
max=cout;
}
}
}
return max;
}
console.log(isMatch([6,-1,5,4,-7]));
3:数组中不存在重复元素,找到两个值的和为k的序对
function isMatch(str,k)
{
var i=0;
var j=str.length-1;
str.sort((a,b)=>{
return a-b;
})
while(j!==i)
{
if(str[j]+str[i]>k)
{
j=j-1;
}
else if(str[j]+str[i]<k)
{
i=i+1;
}
if(str[i]+str[j]==k)
{
console.log(str[i],str[j]);
i=i+1;
}
}
}
console.log(isMatch([6,-1,5,4,-7,2,0,7,5,1],10));
4:数组扁平化开发
let arr = [1, [2, [3, 4]]];
let result = [];
function flattern(arr) {
for(let i = 0; i < arr.length; i++) {
if(Array.isArray(arr[i])) {
flattern(arr[i])
} else {
result.push(arr[i])
}
}
return result;
}
console.log(flattern(arr));
5:求url地址后面的参数
function fun(url ,name)
{
url=decodeURI(url);
var arr=url.split('?');
if(arr.length>1)
{
var arr1=arr[1].toString().split('&');
var arr2;
for(let i=0;i<arr1.length;i++)
{
arr2=arr1[i].toString().split('=');
if(arr2!=null&&arr2[0]==name)
{
return decodeURIComponent(arr2[1]);
}
}
}
return false;
}
var url="https://m.xiaohongshu.com?name=andcdsc3435_&age=1";
var name="name";
console.log(fun(url,name));
6:求集合的并集
function fun(url ,name)
{
return [...new Set([...new Set(url),...new Set(name)])];
}
console.log(fun([1,2,3,5],[5,6,1,4]));
7:求交集
function fun(x ,y)
{
let a=new Set(x);
let b=new Set(y);
return [...new Set([...a].filter(s=>
b.has(s)
))]
}
console.log(fun([1,2,3,4],[3,4,5,6]));