leetcode中常用的方法(JS)

字符转unicode序号

let str = "a";
str.charCodeAt();	// 97
'z'.charCodeAt();	// 122

String.fromCharCode(97);	// a

取片段

let str= "abc";
str.slice(0,2) // "ab"substring()

合并拆分

let str= "abc";
str.split(""); // ["a","b","c"];
let arr = ["a","b","c"];
arr.join("");	// "abc"

替换

splice	//数组方法 改变原数组 添加 删除 修改
letnewstr = str.replace(/01/g,"10") //(全局的01变10)不改变原值

读取数据

"15 32 658 156 98"
let arr = readline().trim().split(" ").map(item=>+item); // 15 32 658 156 98]
// 读取第一行数据,split拆分,再字符串转数字

去重

let arr = [...new Set(arr)];

升序/降序(改变数据本身)

arr.sort((a,b)=>a-b) //升序
arr.sort((a,b)=>b-a) //降序

求最大值

let max = Math.max(...arr);
let max = Math.max.apply(null,arr);
let max = Math.max.call(null,...arr);

复制数组

let arr2 = arr.concat(a,b);
let arr2 = arr.slice(1);

关于字符串赋值!!!!字符串的replace方法不改变数组本身

JS中不能直接  字符串不能 str[i] = 'x'     不能for循环 字符串length 然后赋值 
应该使用 split()转化成字符串数组后再赋值

位运算

//求数组长度的一半
halfLen = arr.length>>1; 等价于 Math.floor(arr.length/2);
Math.floor(5/2) 等价于 ~~(5/2) 等价于 (5/2)|0
// 判断奇偶
num & 1 == 0	//偶(num最后一位为0)
num & 1 == 1	//奇(num最后一位为1)
// 异或
2^2 = 0
2^2^3^3^5 = 5

map转化为二维数组

Map转化为二维数组后排序
let map = new Map([[1,2],[2,3],[3,4]]);
const resultArr = Array.from(map); 
resultArr.sort((a,b) =>b[1] - a[1]);//对value进行从大到小排序

删除字符串中的一个元素

let str = "123456789";
let arr = str.split("");
console.log(arr);
let index= arr.findIndex((item,i)=>{
    console.log(i);
    if(item === "5")return i;
});
arr.splice(index,1);
console.log("afterDel:",arr); //afterDel: ['1', '2', '3','4', '6', '7','8', '9']
str = arr.join("");
console.log(index);	// 4
console.log("finish:",str);	//finish: 12346789

// 删除指定元素
let str = "123456789123456";
let arr = str.split("5");
console.log(arr.join("")); // 1234678912346

不会改变原来数组的有:
1.concat()—连接两个或更多的数组,并返回结果。

2.every()—检测数组元素的每个元素是否都符合条件。

3.some()—检测数组元素中是否有元素符合指定条件。

4.filter()—检测数组元素,并返回符合条件所有元素的数组。

5.indexOf()—搜索数组中的元素,并返回它所在的位置。

6.join()—把数组的所有元素放入一个字符串。

7.toString() —把数组转换为字符串,并返回结果。

8.lastIndexOf()—返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

9.map()—通过指定函数处理数组的每个元素,并返回处理后的数组。

10.slice()—选取数组的的一部分,并返回一个新数组。

11.valueOf()—返回数组对象的原始值。

会改变原来数组的有:
1.pop()—删除数组的最后一个元素并返回删除的元素。

2.push()—向数组的末尾添加一个或更多元素,并返回新的长度。

3.shift()—删除并返回数组的第一个元素。

4.unshift()—向数组的开头添加一个或更多元素,并返回新的长度。

5.reverse()—反转数组的元素顺序。

6.sort()—对数组的元素进行排序。

7.splice()—用于插入、删除或替换数组的元素。

正则
3.重复字符 x(任意的单个字符)
x? 匹配0个或者1个x
x+ 匹配至少一个x字符
x* 匹配任意个x字符
x{m,n}匹配至少m个,最多n个x字符,包括n
x{n} 必须匹配n个x字符
(xyz)+ 小括号括起来的部分是当做单个字符处理
4.锚字符
^ 行首匹配 必须以这个正则开头
$ 行尾匹配 必须以这个正则结尾

方括号
方括号用于查找某个范围内的字符:
[A-Z] 查找任何从大写 A 到大写 Z 的字符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值