【算法】字符串和数组中常用的一些方法汇总

一、split()

定义:

把一个字符串分割成字符串数组。

用法:

let s = 'hello world';
let s1Arr = s.split('');  // ['h','e','l','l','o',' ','w','o','r','l','d']
let s2Arr = s.split(' ');  // ['hello','world']

二、join()

定义:

把数组中的所有元素转换为一个字符串。

用法:

let arr = ['h','e','l','l','o'];
let s1 = arr.join();  // h,e,l,l,o
let s2 = arr.join('');  // hello
let s3 = arr.join(' ');  // h e l l o

三、sort()

定义:

对数组元素进行排序。默认排序是按字母升序。【会改变原始数组】

用法:

// 当元素为字母时
let arr = ['abc', 'aa', 'abb', 'abd'];
let newArr = arr.sort();  // ['aa', 'abb', 'abc', 'abd']
// 当元素为数字时
let arr = [10, 2, 5, 40];
// 情况一:默认
let newArr = arr.sort();  // [10, 2, 40, 5]
// 情况二:升序
let newArr = arr.sort((a, b) => { return a-b });  // [2, 5, 10, 40]
// 情况三:降序
let newArr = arr.sort((a, b) => { return b-a });  // [40, 10, 5, 2]

四、replace()

定义:

在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的字串。【不改变原字串】

用法:

let str = 'hello world';
// 方法一:字串
let newStr = str.replace('hello', 'hi');  // 'hi world'
// 方法二:正则(g修饰符表示全文搜索,i修饰符表示不区分大小写)
let newStr = str.replace(/hello/g, 'hi');  // 'hi world'
let newStr = str.replace(/Hello/i, 'hi');  // 'hi world' 

// 如果什么修饰符也不写,不会全文搜索,只会匹配搜索到的第一项
let s = 'How are you';
let s1 = s.replace(' ', '%20');  // 'How%20are you'
let s2 = s.replace(/ /, '%20');  // 'How%20are you'
let s3 = s.replace(/ /g, '%20');  // 'How%20are%20you'

五、substring()

定义:

提取字符串中介于两个指定下标之间的字符。【不改变原始字串】

用法:

let str = 'hello';
let newStr = str.substring(0, 2);  // 'he'
let newStr = str.substring(1);  //ello

六、splice()

定义:

添加或删除数组中的元素。【会改变原始数组】

用法:

let arr = ['a', 'b', 'c', 'd'];
// 添加
let a1 = arr.splice(1, 1, 'e', 'f');  // ['a', 'e', 'f', 'c', 'd']
// 删除
let a2 = arr.splice(1, 2);  // ['a', 'd']

七、slice()

定义:

提取字符串的某个部分。【不改变原字串】

用法:

let str = 'hello world';
let newStr = str.slice(1, 4);  // 'ell'
let newStr = str.slice(1);  // 'ello world'

八、indexOf()

定义:

返回某个字符串值在字符串中或数组中首次出现的位置,如果没有匹配到,则返回 -1。

用法:

let str = 'hello world';
let newStr = str.indexOf('b');  // -1

let arr = ['app', 'origin', 'banana'];
let newArr = arr.indexOf('a');  // -1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值