字符转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 的字符。