替换字符串中的某个字符_替换字符串中的某个字符

替换字符串中的某个字符_替换字符串中的某个字符js常用方法持续更新:js截取字符串,数组去重,根据输入内容,在数组中排序在最前面_js文本根据字段分隔

js常用方法



一、截取指定位置后的内容

(1)、假设str = ‘aaabbbcccddd’

我想要拿到ddd

var str = 'aaabbbcccddd' var splitStr = str.split('ccc') 打印splitStr ,得到的结果是['aaabbb','ddd'] var lastStr = splitStr[1] 

(2)、假设str = ‘aaabbbcccddd’
我想要拿到从c开始到d的字符串,即cccddd

var str = 'aaabbbcccddd' const index = str.indexOf('ccc') console.log(index) //6 const lastStr = str.substring(index,str.length) console.log(lastStr )//cccddd,str.length包含了结束索引所在的位置,所以是从指定索引截取到了最后一个字符串 

2023年11月1日更新~~~

二、想要调用方法的时候,每次都是从后面往前删

假设str = ‘aaabbbcccddd’

可以使用substring()方法,截取之后返回的字符串就是子串,字串包含开始处的字符,不包含结束处的字符
在这里插入图片描述

示例:

var str = 'aaabbbcccddd' var result = '' result = str.substring(0,str.length-1) console.log(result),//1、aaabbbcccdd 2、aaabbbcccd 3、aaabbbccc ........ 即从索引0开始截取,但是包含索引0;截取到字符串的最后一位,但是不包含最后一位 

2024年2月22日更新~~~

三 js统计字符串中出现次数最多的字符

 let str = 'asdfghjklaqwertydkfhdkjcnvsowe' const sttChat = str => { 
    let string = [...str], maxValue = '',//出现最多的字符 obj = { 
   },//定义空对象,辅助作用 max = 0//出现最多的字符的次数 string.forEach(value => { 
    obj[value] = obj[value] == undefined ? 1 : obj[value] + 1//代码解读: //obj[value]等于obj.a或obj.s,相当于obj.a的值是否为undefined,循环刚开始,每一个第一次出现的字符的值都是undefined,是undefined就赋值为1 //当再遇到相同的字符,因为值为1,所以就进行obj[value] + 1,相当于1+1 //依次类推,出现最多的字符的值是最大的 if (obj[value] > max) { 
    max = obj[value] maxValue = value } }) return maxValue } console.log(sttChat(str), 'sttChat')//打印结果:d 

四 js数组去重

1、forEach去重

 let arr = ['1','2','2','3','4','4','4','5',] //定义了一个名为 unique 的箭头函数,接受一个数组作为参数 const unique = arr=>{ 
    let obj = { 
   } arr.forEach(item=>{ 
    obj[item] = 0 //对数组中的每个元素执行一个函数,在 obj 对象中以该元素的值作为键,值设为 0 }) return Object.keys(obj) //返回 obj 对象的所有键(key)组成的数组,因为对象的键(key)是唯一的,所以这一步相当于找出了数组中的所有唯一元素 // } console.log(unique(arr),'unique');//打印结果:['1', '2', '3', '4', '5'] 

2、filter去重

 let arr = ['1','2','2','3','4','4','4','5','6','6'] //定义了一个名为 unique 的箭头函数,接受一个数组作为参数 const unique = arr=>{ 
    //filter方法三个参数,当前正在处理的元素(item)、该元素在数组中的索引(index)以及整个数组(array) return arr.filter((item,index,array)=>{ 
    console.log(array.indexOf(item),'array.indexOf(item)'); //使用 indexOf() 方法检查当前元素在数组中第一次出现的位置是否与当前索引相等。如果是,则说明当前元素是第一次出现,应该保留。否则说明当前元素已经在数组中出现过,应该被过滤掉。 return index === array.indexOf(item) }) } console.log(unique(arr),'unique');//打印结果:['1', '2', '3', '4', '5','6'] 

加粗样式indexOf方法的具体使用可以参考菜鸟教程-JavaScript Array indexOf() 方法,还提供了在线编码的功能

因为indexOf返回item第一次出现的位置,所以之后再出现的它是不管的
在这里插入图片描述
苹果出现了两次,indexOf只关注第一次出现的位置
在这里插入图片描述
3、set去重(ES6 中的 Set 数据结构)

let arr = ['1','2','2','3','4','4','4','5','6','6'] //定义了一个名为 unique 的箭头函数,接受一个数组作为参数 const unique = arr=>{ 
    //在函数体内部,使用了 Set 数据结构来去除数组中的重复元素。首先,通过 new Set(arr) 创建了一个 Set 对象,Set 对象的特性是不允许包含重复值。然后使用扩展运算符 ... 将 Set 对象转换为一个数组,并作为函数的返回值 return [...new Set(arr)] } console.log(unique(arr),'unique-set');//打印结果:['1', '2', '3', '4', '5','6'] 

2024年2月27日更新~~~

五 js根据输入内容,在数组中排序在最前面

1、输入内容只考虑数字

const arr = [19001, 20001, 32001, 19002, 43001, 19200, 19500] this.inputVal = '19' const filterArr = arr.sort((a, b) => this.customSort(a, b)) //如果arr的结构是[{str:'19001'},{str:'20001'},{str:'32001'},{str:'19002'},{str:'43001'},{str:'19200'},{str:'19500'}] //const filterArr = arr.sort((a, b) => this.customSort(a.str, b.str)) 
 customSort(a, b) { 
    const aStartsWithInput = a.toString().startsWith(this.inputVal); const bStartsWithInput = b.toString().startsWith(this.inputVal); if (aStartsWithInput && !bStartsWithInput) { 
    return -1; // a 在前 } else if (!aStartsWithInput && bStartsWithInput) { 
    return 1; // b 在前 } else { 
    return a - b; // 保持原顺序 } } 

2、输入内容包含数字和英文

const arr = ['19se001', 20001, 32001, 19002, 43001, 19200, 19500,'se001']; this.inputVal = 'se' const filterArr = arr.sort((a, b) => this.customSort(a, b)) //如果arr的结构是[{str:'19se001'},{str:'20001'},{str:'32001'},{str:'19002'},{str:'43001'},{str:'19200'},{str:'19500'},{str:'se001'}] //const filterArr = arr.sort((a, b) => this.customSort(a.str, b.str)) 
 customSort(a, b) { 
    const aStartsWithInput = a.toString().toUpperCase().startsWith(this.inputVal.toUpperCase()); const bStartsWithInput = b.toString().toUpperCase().startsWith(this.inputVal.toUpperCase()); if (aStartsWithInput && !bStartsWithInput) { 
    return -1; // a 在前 } else if (!aStartsWithInput && bStartsWithInput) { 
    return 1; // b 在前 } else { 
    return a.toString().localeCompare(b); // 保持原顺序 } }, 

今天的文章
替换字符串中的某个字符_替换字符串中的某个字符分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81129.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注