数组和字符串常用方法

68 阅读2分钟

字符串的方法(都不能修改字符串本身)

length 字符串长度

获取指定字符串位置的字符

const str = 'string';
str.charAt(6) // ''
str[6] // undefined

检查是否包含某个字符或字符串?

const str = 'string';
str.indexOf('st'); // 0
str.includes('s') //  true
str.startsWith('str') // true
str.endsWith('ing') // true

链接字符串

const str1 = 'string';
const str2 = 'string';
str1.concat(str2,'extra');

字符串转化成数组

const str = 'string';
str.split('') // ['s','t','i','n','g']

截取字符串

const str = 'string';
str.slice(n,m) // 从n截取到m,不包含m
str.substr(n,number) // 从n开始截取number个字符

大小写转换

toLowerCase()
toUpperCase()

字符串匹配(跟正则表达式一起使用)

str.search(/a/) // 返回第一个index
str.match(/[a-z]/) //返回数组
str.replace(/[a-z]/g,'hh') // 返回新字符串

移除前后空白

str.trim()
str.trimStart()
str.trimEnd()

重复

str.repeat(n) //重复n次 小数向下取整

数组常用方法

可以改变数组本身的方法

push pop unshift shift

数组添加元素或者删除单个元素的方法

splice、reverse、sort

splice(index,deleteNum,addItem);

删除和添加都是从index(包含)开始算起



arr.sort((a,b)=>return a-b;)

1.若返回值小于0,a排在b的前面

2.返回值等于0,位置不变

3.返回值大于0,a排在b后面


// 按照id升序排列,id相同的话,按照age升序排列
var array = [{id:10,age:2},{id:5,age:4},{id:6,age:10},{id:9,age:6},{id:2,age:8},{id:10,age:9}];

array.sort((a,b)=>{
  if(a.id === b.id){
    return a.age - b.age;
  } else {
    return a.id - b.id;
  }
})
// 名字为Koro1的对象排在前面
var array = [{name:'Koro1'},{name:'Koro1'},{name:'OB'},{name:'Koro1'},{name:'OB'},{name:'OB'}];

array.sort((a,b)=>{
  if(a.name === 'Koro1'){
    return -1;
  } else {
    return 1
  }
})
console.log(array)

fill填充数组


fill(item,startIndex,endIndex)
['a', 'b', 'c'].fill(7, 1, 2) // ['a', 7, 'c']

不能改变原数组的方法

数组遍历方法:

every some filter map forEach reduce for...of(遍历数组值) for...in(遍历数组下标)

数组查找方法:

indexOf(返回值) includes(boolean) find(返回第一个满足条件的值)

数组增删方法:

concat(数组拼接)、slice(m,n)(获取某部分数组[n,m))

数组去重方法

Array.from(new Set(arr))

[...new Set(arr)]

// reduce
function unique(arr){
   return arr.reduce((prev,curr)=>{
       !prev.includes(curr) && (prev.push(curr))
       return prev
   },[])
}
// filter
var a = [1,2,3,3]
let s = new Set()
let b = arr.filter(item=>s.has(item)?false:(s.add(item)))

indexOf方法

for循环