工作中常用的字符串和数组方法

1.获取字符串指定位置的值

charAt()和charCodeAt()都可以通过索引来获取指定位置的值。

tip:你可以使用下标获取某个位置的字符,但如果是下标越界就会返回undefined,charAt返回空字符串

  • charAt()方法获取到的是指定位置的字符
  • charCodeAt()是获取指定位置字符的Unicode值
2.检索字符串是否包含特定序列
  • indexof()查找某个字符串,有则返回第一个匹配到的位置,没有返回-1,第二个参数是开始检索的位置
  • lastIndexof()查找某个字符串,有则返回最后个匹配到的位置,没有返回-1,第二个参数是从结尾开始检索的位置
  • includes()判断是否包含某个字符串,有则返回true,没有返回false,第二个参数是开始检索的位置
  • startsWith()/endsWith() 检测字符串是否以指定的字符串开始/结束
3.字符串截取
  • slice()推荐使用,可以用负数下标

'abcd'.slice(1,2) // b
'abcd'.slice(1) //bcd
'abcd'.slice(-4,-1) //abc
'abcd'.slice(-5,-1)//abc

  • substring(start,length) 次推荐, 用于在字符串中抽取从开始下标开始的指定数目的字符
let str = "Hello, World!";
let substr = str.substring(0, 5); // 截取从索引 0 到索引 5 之间的字符 左闭右开
console.log(substr); // "Hello"

// 传入的参数如果有负数会被视为 0
let substr2 = str.substring(-5, 10);
console.log(substr2); // "Hello, Wo"(负数会被当作 0 处理)
  • substr()不推荐
4.字符串模式匹配
  • replaceAll()与 replace() 的全局标志 g 功能相似

  • replace() 该方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串

let str = "abcdef";
str.replace("c", "z") // 输出结果:abzdef

let str="Mr Blue has a blue house and a blue car";
str.replace(/blue/gi, "red");    // 输出结果:'Mr red has a red house and a red car'
// 全局匹配g i不区分大小写
  • match()检索字符串中与正则表达式匹配的内容,并返回一个数组。如果没有匹配项,则返回 null
let str = "The quick brown fox jumps over the lazy dog";
let result = str.match(/the/gi);  // 忽略大小写的全局匹配
let result = str.match(/the/i);  // 忽略大小写的全局匹配
console.log(result);  // ["The", "the"]
console.log(result);  //[
    "the"
]

  • matchAll() 方法(ES2020 引入)用于返回字符串中所有与正则表达式匹配的内容。它会返回一个迭代器(Iterator),每个元素是一个匹配结果的数组
let str = "cat and cat and cat";
let result = str.matchAll(/cat/g);
for (const match of result) {
  console.log(match);
}
// Output:
// ["cat", index: 0, input: "cat and cat and cat", groups: undefined]
// ["cat", index: 8, input: "cat and cat and cat", groups: undefined]
// ["cat", index: 17, input: "cat and cat and cat", groups: undefined]

  • exec()用于执行一个匹配,并返回匹配到的内容。如果没有匹配,返回 null。与 match() 不同的是,exec() 可以返回更多的详细信息(如捕获的组)
let regex = /(\d+)-(\d+)-(\d+)/;  // 匹配日期格式
let str = "2024-11-14";
let result = regex.exec(str);
console.log(result);  // ["2024-11-14", "2024", "11", "14"]

  • test() 方法用于判断字符串是否符合正则表达式模式。如果匹配,返回 true,否则返回 false
let regex = /fox/;
let result = regex.test("The quick brown fox");
console.log(result);  // true

  • search()方法用于查找字符串中第一次出现匹配正则表达式的位置。如果匹配成功,返回匹配的第一个位置,否则返回-1
let str = "The quick brown fox";
let index = str.search(/brown/);
console.log(index);  // 10
  • padStart用于头部补全。该方法有两个参数,其中第一个参数是一个数字,表示字符串补齐之后的长度;第二个参数是用来补全的字符串。

    如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串

    'x'.padStart(1, 'ab') // 'x'
    'x'.padStart(33, 'ab') // 'ababababababababababababababababx'
    //如果省略第二个参数,默认使用空格补全长度:
    'x'.padStart(4) // '   x'
    
判断一个数组是不是包含某个值常用方法

1.find/findIndex

const list = [
   {id:1,name:'JK'},
   {id:2,name:'MM'},
   {id:3,name:'SR'}
]
list.find((item)=>item.name==="SB") // 返回这个对象 没匹配就返回list.findIndex((item)=>item.name==="SB") // 返回这个对象的下标 没匹配就-1

2.includes

list.some((item)=>item.name==="SB") // 返回布尔值

3.reduce

list.reduce((pre,curr)=>item.name==="SB",false) // 返回布尔值
posted @   游向戈壁滩的鱼  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示