数组方法 字符串方法

  • 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-#$*%

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容