常用的js的字符串和数组的方法

4 篇文章 0 订阅
本文详细介绍了JavaScript中字符串常用方法如indexOf、replace、转换大小写,以及数组操作如slice、splice、排序和迭代。从字符串截取、替换到数组连接、排序和筛选,是前端开发人员必备技能集锦。
摘要由CSDN通过智能技术生成

常用的js的字符串和数组的方法

一.字符串

所有的字符串方法都不会改变原来字符串。

1.indexOf()
根据字符找下标,看返回值是否为-1,为-1就不存在。

var str='abcdefg';
var pos=str.indexOf("a")
console.log(pos)//0
console.log(str)//'abcdefg'

如果有第二个参数,就是开始找的索引

2.提取部分字符串slice(),substing(),substr()
slice()支持负索引,两个参数,分别是起始下标和结束下标(包左不包右)
substing()不支持负索引,两个参数,分别是起始下标和结束下标(包左不包右)
substr()支持负索引,两个参数,分别是开始索引和截取个数

var str='abcdefg';
var pos1=str.slice(1,3);
var pos2=str.substring(1,3);
var pos3=str.substr(1,3);
console.log(pos1)//"bc"
console.log(pos2)//"bc"
console.log(pos3)//"bcd"
console.log(str)//'abcdefg'

3.replace替换
/i 大小写不敏感
/g 全局搜索

var str='abcdefgabcdefg';
var pos=str.replace("ab","88")
console.log(pos)//"88cdefgabcdefg"
console.log(str)//"abcdefgabcdefg"

使用全局搜索就全部替换:

var str='abcdefgabcdefg';
var pos=str.replace(/ab/g,"88")
console.log(pos)//"88cdefg88cdefg"
console.log(str)//"abcdefgabcdefg"

4.toUpperCase 大写,toLowerCase 小写

var str='abcdefg';
var pos=str.toUpperCase()
console.log(pos)//ABCDEFG
console.log(str)//abcdefg

5.concat 连接字符串

var str1='abc';
var str2="def"
var pos=str1.concat("",str2)//前面的""去掉也可以
console.log(pos)//abcdef

6.split()字符串变数组

var str='a,b,c,d';
var res1=str.split(" ")
var res2=str.split("")
var res3=str.split(",")
console.log(str)//"a,b,c,d"
console.log(res1)//["a,b,c,d"]
console.log(res2)//["a",",","b","c",",","d"]
console.log(res3)//["a","b","c","d"]

7.trim()字符串去除前后空格

var str='       abcdefg    ';
var pos=str.trim()
console.log(pos)//"abcdefg"
console.log(str)//"       abcdefg    "

二.数组

1.数组变字符串
tostring()返回的字符串是逗号分开
join()返回的字符串可自定义

var arr=["a","b","c","d"];
var pos=arr.toString()
console.log(arr)//["a","b","c","d"]
console.log(pos)//"a,b,c,d"
var arr=["a","b","c","d"];
var pos=arr.join("*")
console.log(arr)//["a","b","c","d"]
console.log(pos)//"a*b*c*d"

2.数组长度去掉和增加(会改变原数组)
push()在尾巴上增加,返回新数组长度

var arr=["a","b","c","d"];
var pos=arr.push("m")
console.log(arr)//["a","b","c","d","m"]
console.log(pos)//5

pop()在尾巴上去掉,返回被去掉值

var arr=["a","b","c","d"];
var pos=arr.pop()
console.log(arr)//["a","b","c"]
console.log(pos)//"d"

shift()在前面去掉,返回去掉值

var arr=["a","b","c","d"];
var pos=arr.shift()
console.log(arr)//["b","c","d"]
console.log(pos)//"a"

unshift()在前面增加,返回新数组长度

var arr=["a","b","c","d"];
var pos=arr.unshift("666")
console.log(arr)//["666","a","b","c","d"]
console.log(pos)//5

3.splice()拼接数组,参数:下标,删除个数,新元素
返回被删掉的数组,原数组被更改

var arr=["a","b","c","d"];
var pos=arr.splice(2,1,"1","2","3")
console.log(arr)//["a","b","1","2","3","d"]
console.log(pos)//["c"]

4.slice()裁剪数组
两个参数,分别是起始下标和结束下表,包左不包右。
返回裁剪下来的值,不会改变原数组。

var arr=["a","b","c","d"];
var pos=arr.slice(1,3)
console.log(arr)//["a","b","c","d"]
console.log(pos)//["b","c"]

5.concat()合并数组
可以合并多个数组,不会改变原数组,直接返回新的数组。

var arr=["a","b","c","d"];
var arr1=["66","88"]
var pos=arr.concat(arr1)
console.log(arr)//["a","b","c","d"]
console.log(pos)//["a","b","c","d","66","88"]

6.数组排序
原数组被改变,返回的是新数组。排序后,返回的新数组和原数组长一样
1)字母排序:直接sort;字母反转:reverse

var arr=["d","a","c","b"]
var pos=arr.sort()
console.log(arr)//["a","b","c","d"]
console.log(pos)//["a","b","c","d"]

2)数字排序
sort((a - b)=>{ return a - b }) 升序
sort((a - b)=>{ return b - a }) 降序
方法一:

var arr=[100,22,3,13,4,11,25]
var pos=arr.sort((a,b)=>{return a-b})
console.log(arr)//[3, 4, 11, 13, 22, 25, 100]
console.log(pos)//[3, 4, 11, 13, 22, 25, 100]

方法二:

var arr=[100,22,3,13,4,11,25]
var pos=arr.sort((m,n)=>{
    if(m<n){return -1}
    else if(m>n){return 1}
    else return 0
})
console.log(arr)//[3, 4, 11, 13, 22, 25, 100]
console.log(pos)//[3, 4, 11, 13, 22, 25, 100]

3)对象数组
如果是数字就直接比较,但如果是字符串需要转换成大小写统一。

var cars=[
    {type:"a",year:2016},
    {type:"b",year:2001},
    {type:"c",year:2019}
]
cars.sort((a,b)=>{return a.year - b.year})
console.log(cars)

打印结果:
在这里插入图片描述
7.数组迭代
1)forEach()
三个参数:value(每一个item),index(每一个item的index),array(数组自己)
会改变原数组
示例:单个item加100

var arr=[1,2,3,4,5,6]
arr.forEach((val,index,arr)=>{
    arr[index]+=100
})
console.log(arr)// [101, 102, 103, 104, 105, 106]

示例:叠加

var sum=0
var arr=[1,2,3,4,5,6]
arr.forEach((val,index,arr)=>{
    sum+=val
})
console.log(arr)// [1,2,3,4,5,6]
console.log(sum)//21

2)map()
三个参数:value(每一个item),index(每一个item的index),array(数组自己)
不会改变原数组,返回一个新的数组
相当于for循环,改变每个的值

var arr1=[1,2,3,4,5,6]
var arr2=arr1.map((val,index,array)=>{
    return val*2
})
console.log(arr1)//[1,2,3,4,5,6]
console.log(arr2)//[2, 4, 6, 8, 10, 12]

3)filter()
三个参数:value(每一个item),index(每一个item的index),array(数组自己)
不会改变原数组,返回一个新的数组

var arr1=[1,2,3,4,5,6]
var arr2=arr1.filter((val,index,array)=>{
    return val>3
})
console.log(arr1)//[1,2,3,4,5,6]
console.log(arr2)//[4, 5, 6]

4)reduce()
四个参数:total(初始值或者上次的结果),value,index,array ,从左往右加
不会改变原数组,返回一个新的数组

var arr1=[1,2,3,4,5,6]
var arr2=arr1.reduce((total,val,index,array)=>{
    return total+val
})
console.log(arr1)//[1,2,3,4,5,6]
console.log(arr2)//21

reduceRight()
四个参数:total(初始值或者上次的结果),value,index,array ,从右往左加
不会改变原数组,返回一个新的数组

5)every()
是否所有值都满足条件,返回boolean值
三个参数:value(每一个item),index(每一个item的index),array(数组自己)

var arr1=[1,2,3,4,5,6]
var res=arr1.every((val,index,array)=>{
    return val>18
})
console.log(arr1)//[1,2,3,4,5,6]
console.log(res)//false

6)some()
是否里面有一个值满足条件,返回boolean值

var arr1=[1,2,3,4,5,6]
var res=arr1.some((val,index,array)=>{
    return val>5
})
console.log(arr1)//[1,2,3,4,5,6]
console.log(res)//true

8.indexOf() 返回索引,未找到值就返回-1,从左往右
lastIndexOf() 返回索引,未找到值就返回-1,从右往左
都不改变原数组

var arr1=[1,2,3,4,5,6,1,2,3,4,5,6]
var res=arr1.indexOf(5)
console.log(arr1)//[1,2,3,4,5,6,1,2,3,4,5,6]
console.log(res)//4
var arr1=[1,2,3,4,5,6,1,2,3,4,5,6]
var res=arr1.lastIndexOf(5)
console.log(arr1)//[1,2,3,4,5,6,1,2,3,4,5,6]
console.log(res)//10

9.find() 返回满足某种条件的第一个元素(从左往右)
findIndex() 返回满足某种条件的第一个元素的下标(从左往右)

var arr1=[5,6,7,8,4,5,6,7,8]
var res=arr1.find((val,index,arr)=>{
    return val>7
})
console.log(arr1)//[5,6,7,8,4,5,6,7,8]
console.log(res)//8
var arr1=[5,6,7,8,4,5,6,7,8]
var res=arr1.findIndex((val,index,arr)=>{
    return val>7
})
console.log(arr1)//[5,6,7,8,4,5,6,7,8]
console.log(res)//3

10.Object.keys() 可遍历对象,也可以遍历数组

var person={name:'Lily',age:11,sex:'girl'}
var arr=Object.keys(person)
console.log(arr)//["name", "age", "sex"]

11.Object.values()

var person={name:'Lily',age:11,sex:'girl'}
var arr=Object.values(person)
console.log(arr)//["Lily", 11, "girl"]

12.for …in遍历key下标

var arr=["one","two","three"]
for(let i in arr){
    console.log(i)
    console.log(arr[i])
}

在这里插入图片描述
for…in循环不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键

13.for … of 遍历数组值item

var arr=["one","two","three"]
for(let i of arr){
    console.log(i)
}

在这里插入图片描述

JavaScript中有许多用于字符串数组处理的方法。下面是一些常用方法字符串方法: 1. `length`:返回字符串的长度。 2. `charAt(index)`:返回指定位置的字符。 3. `charCodeAt(index)`:返回指定位置字符的Unicode值。 4. `toLowerCase()`:将字符串转换为小写。 5. `toUpperCase()`:将字符串转换为大写。 6. `trim()`:去除字符串两端的空格。 7. `slice(start, end)`:提取字符串的一部分,包括起始索引但不包括结束索引。 8. `split(separator)`:将字符串按指定分隔符分割为数组数组方法: 1. `length`:返回数组的长度。 2. `concat(arr)`:将数组与其他数组或值连接在一起,返回一个新数组。 3. `join(separator)`:将数组的所有元素转换为字符串,通过指定的分隔符连接起来。 4. `pop()`:移除并返回数组中的最后一个元素。 5. `push(item1, item2, ...)`:向数组末尾添加一个或多个元素,并返回新数组的长度。 6. `shift()`:移除并返回数组中的第一个元素。 7. `unshift(item1, item2, ...)`:向数组开头添加一个或多个元素,并返回新数组的长度。 8. `slice(start, end)`:提取数组的一部分,包括起始索引但不包括结束索引。 9. `splice(start, count, item1, item2, ...)`:从指定位置开始修改数组,删除/替换/添加元素。 这只是一部分常用方法JavaScript还有很多其他处理字符串数组方法。你可以查阅相关文档来了解更多细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值