数组方法 字符串方法

  • push
    改变原数组
arr: [1, 2, 3, 4, 56]
console.log(this.arr.push(9)) // 返回数组长度
 console.log(this.arr) // [1, 2, 3, 4, 56, 9]
  • pop
    改变原数组
 console.log(this.arr.pop()) // 56
  console.log(this.arr) // [1, 2, 3, 4]
  • unshift
    改变原数组
      console.log(this.arr.unshift(0)) // 长度 6
      console.log(this.arr) // [0, 1, 2, 3, 4, 56]
  • shift
    改变原数组
console.log(this.arr.shift()) // 删除的元素 1
console.log(this.arr) // [2, 3, 4, 56]
  • arr.splice(index,howmany, item1,...)
    改变原数组
    howmany-> 删除的个数
    item -> 添加的元素
this.arr.splice(1, 2, 'hehe', 'haha')
 console.log(this.arr) // [1, 'hehe', 'haha', 4, 56]
  • arr.sort(function (a,b) { return a-b })
    改变原数组
arr: [1, 2, 3, 4, 56, 6, 5, 4, 3]
this.arr.sort(function (a, b) { return a - b }) 
 console.log(this.arr) // [1, 2, 3, 3, 4, 4, 5, 6, 56]
  • arr.reverse()
    改变原数组
   this.arr.reverse()
    console.log(this.arr) // [56, 4, 3, 2, 1]
  • arr.concat([])
arr: [1, 2, 3, 4, 56]
 const newArr = this.arr.concat([9, 8, 7])
  console.log(newArr) // [1, 2, 3, 4, 56, 9, 8, 7]
   console.log(this.arr) // [1, 2, 3, 4, 56]
  • arr.toString()
const arr = ['A1', 'A2']
 const str = arr.toString()
 console.log(str) // A1,A2
  • arr.join()
const arr = ['A1', 'A2']
  const str = arr.join()
 console.log(str) // A1,A2
  • arr.indexOf()
    查找某个元素的索引值,若有重复的,则返回第一个查到的索引值若不存在,则返回 -1
 const arr = ['A1', 'A2', 'A1']
      const index = arr.indexOf('A1')
      console.log(index) // 0
  • arr.slice(start,end)
    切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组
      const arr = [1, 2, 3, 4, 5]
      const newArr = arr.slice(0, 2)
      console.log(newArr) // [1, 2]
  • arr.forEach(callback)
    arr.forEach 没有返回值, 在forEach循环里面写return不会生效
    会影响原数组
    item 每一项
    index 索引
    array 数组
 const arr = [{ name: 'text' }, { name: 'zhangsan' }, { name: 'lisi' }]
      arr.forEach((item, index, array) => {
        item.name = item.name + '9999'
      })
      console.log(arr)
// (3) [{…}, {…}, {…}]
// 0: {name: 'text9999'}
// 1: {name: 'zhangsan9999'}
// 2: {name: 'lisi9999'}
  • arr.some
    如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测
const arr = [3, 5, 7, 8, 9]
      const res = arr.some(item => {
        return item > 100
      })
      console.log(res, 'res') // false
  • arr.every
    用于检测数组所有元素是否都符合指定条件, 返回true 或者false
    如果有一个条件不满足条件,就不在执行检测
const arr = [3, 5, 7, 8, 9]
      const res = arr.every(item => {
        return item > 2
      })
      console.log(res, 'res') // true
  • arr.includes()
    arr.match(regexp)
    包含返回true, 不包含返回false
  • arr.match()
    返回存放匹配结果的数组
    没有返回null
  • arr.reduce
    接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
  const arr = [{ name: 'lsi' }, { name: 'xixi' }]
      const res = arr.reduce((tol, item, index, arr) => {
        tol.push(item.name)
        return tol
      }, []) // 可以自定义tol是数组或其他格式
      console.log(res, 'res')  //  ['lsi', 'xixi']
  • arr.map
    返回一个新数组, 数组中的元素为原始数组调用函数处理后的值
const arr = [{ name: 'lsi' }, { name: 'xixi' }]
      const res = arr.map(item => {
        item.age = 90
        return item
      })
      console.log(res, 'ddd')
// 返回数据 
(2) [{…}, {…}] {name: 'lsi', age: 90}{name: 'xixi', age: 90}
  • arr.find()
    返回被找到的对象
  1. 返回通过测试的第一个元素的值
  2. 没有找到返回undefined
  3. 不会查找空数组
const arr = [{ name: 'lsi' }, { name: 'xixi' }]
const res = arr.find(item => { return item.name === 'xixi' })
const re = arr.find(item => { return item.name === 'nana' })
console.log(res, 'res')  // 返回数据 {name: 'xixi'} 'res'
console.log(re, 'res')  // undefined 'res'

  • 拿到两个数组对象的相同项
  const arr = [{ name: 'text' }, { name: 'zhangsan' }, { name: 'lisi' }, { name: 'hehe' }]
  const str = [{ n: 'text' }, { n: 'lisi' }]
  const newarr = arr.filter(item => {
    let temp
    str.forEach(e => {
      if (item.name === e.n) {
        temp = e.n
      }
    })
    return item.name === temp
  })
  console.log(newarr, 90)
// 0: {name: 'text'}
// 1: {name: 'lisi'}
  • Array.isArray() 判断是否为数组
Array.isArray([1, 2, 3]);
// true
Array.isArray({foo: 123});
// false
Array.isArray("foobar");
// false
Array.isArray(undefined);
// false

字符串方法

  • str.length
const str = "The full name of China is the People's Republic of China"
 console.log(str.length)  //57
  • str.indexOf(‘content’, index) // index 从哪个索引开始搜索
    返回指定文本首次出现的索引, 没有返回-1
 const str = "The full name of China is the People's Republic of China"
      const res = str.indexOf('full')
      console.log(res)  // 4
  • str.lastIndexOf(‘content’, index) // index 从哪个索引开始搜索
    返回指定文本最后一次出现的索引, 没有返回-1
 const str = "The full name of China is the People's Republic of China"
      const res = str.lastIndexOf('China')
      console.log(res) // 51
  • str.search()
    搜索特定值的字符串,并返回匹配的位置,没有-1
    search 没有第二个特定值
const str = "The full name of China is the People's Republic of China"
      const res = str.search('China')
      console.log(res) // 17
  • str.slice(start, end)
    截取指定片段, 如果为负数,则从反向截取
    如果只有start ,则截取到最后
const str = "The full name of China is the People's Republic of China"
 const res = str.slice(3, 17)
 console.log(res) //full name of 

      const str = "The full name of China is the People's Republic of China"
      const res = str.slice(-17, -3)
      console.log(res)  // Republic of Ch
  • str.substring(start, end)
    与slice相似,只是没有负数
  const str = "The full name of China is the People's Republic of China"
      const res = str.substring(3, 17)
      console.log(res)  // full name of 
  • str,substr(start, length)
    与slice相似,第二个参数为长度
    如果省略第二个参数,则该 substr() 将裁剪字符串的剩余部分
    如果首个参数为负,则从字符串的结尾计算位置
const str = "The full name of China is the People's Republic of China"
      const res = str.substr(3, 17)
      console.log(res)  // full name of Chi

 const str = "The full name of China is the People's Republic of China"
      const res = str.substr(-7, 5)
      console.log(res) //  f Chi  

  • str.replace()
  1. 用一个值替换在字符串中指定的值
  2. 返回新的字符串, 只替换首个匹配
  3. 对大小写敏感
const str = 'Please visit Microsoft and Microsoft!'
      var n = str.replace('Microsoft', 'W3School')
      console.log(n)   // Please visit W3School and Microsoft!

// 忽略大小写
const str = 'Please visit MICROSOFT and Microsoft!'
      var n = str.replace(/Microsoft/i, 'W3School')
      console.log(n)  // Please visit W3School and Microsoft!

// 全局替换
 const str = 'Please visit MICROSOFT and Microsoft!'
      var n = str.replace(/Microsoft/ig, 'W3School')
      console.log(n)  // Please visit W3School and W3School!

// 正则表达式替换
const str = 'Doden  ,  John'
      const n = str.replace(/(\w+)\s*, \s*(\w+)/ig, '$2 $1')
      console.log(n)   // John Doden

// 正则 replace函数
var newString = 'abc12345#$*%'.replace(/([^\d]*)(\d*)([^\w]*)/, function (match, p1, p2, p3, str) {
        console.log(p1, 'p1')   // abc p1
        console.log(p2, 'p2')   //  12345 p2
        console.log(p3, 'p3')   //  #$*% p3
        return [p1, p2, p3].join('-')   
      })
      console.log(newString)  //  abc-12345-#$*%

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容