js常用数组和字符串方法总结

目录

一、数组api

1.1、push(x) 尾插

1.2、pop() 尾删

1.3、unshift(x) 头插

1.4、shift() 头删

1.5、找元素:valueOf()、indexOf()、lastIndexOf()、includes()

1.6、数组转字符串:toString()、join('分隔符')

1.7、concat(x)尾部合并

1.8、reverse()颠倒顺序

1.9、slice(开始位置,结束位置)

1.10、splice(开始位置,删除个数,新插入元素)

1.11、sort()排序

1.12、map()、forEach()循环

1.13、filter()过滤

1.14、fill("替换元素",开始位置,结束位置)

1.15、copyWithin(开始位置,结束位置)

1.16、案例分享

1.17、检测

二、字符串

2.1、字符串转数组:split('分隔符')

2.2、找:search('元素')、charAt(下标)

2.3、截取:substring(开始位置,结束位置)、substr(开始位置,截取长度)

2.4、替换:replace(/'旧'/gi, '新元素')

2.5、repeat(复制次数)

一、数组api

1.1、push(x) 尾插

    var arr = [1, 2, 3]
    var b = arr.push('x')
console.log(b);//4 (总长度)
console.log(arr);// [1, 2, 3, 'x']

1.2、pop() 尾删

    var brr = [1, 2, 3]
    var c = brr.pop()
console.log(c);//3 (删除的元素)
console.log(brr);// [1, 2]

1.3、unshift(x) 头插

    var crr = ['a', 'b', 'c']
    var d = crr.unshift('x')
console.log(d);//4 (总长度)
console.log(crr);//  ['x', 'a', 'b', 'c']

1.4、shift() 头删

    var drr = ['a', 'b', 'c']
    var e = drr.shift()
console.log(e);//a (删除的元素)
console.log(drr);//  ['b', 'c']

1.5、找元素:valueOf()、indexOf()、lastIndexOf()、includes()

var drr = ['a', 'b', 'c']
console.log(drr.valueOf());// ['b', 'c']
console.log(drr.indexOf('b1'));// 'b'==>0   'c'==>1  '其它'==>-1
console.log(drr.indexOf('b', 2));// -1
let arr = ["一", '二', '三', '四', '五']
console.log(arr.lastIndexOf('三', 3));//2  从后往前,在索引为3的位置开始往后检测  不改变原数组
console.log(arr.includes('三'));//true

1.6、数组转字符串:toString()、join('分隔符')

注:toString()一个个转   toLocaleString()整体转换

    var err = [1, 2, 3, [4, 5, 6]]
    var f = err.toString()
console.log(f, err);//1,2,3,4,5,6   [1, 2, 3,[4,5,6]]

    let a = [1, 2, 3, null, , '菜鸟'];
console.log(a.toString());//1,2,3,,,菜鸟
console.log(a.toLocaleString());//1,2,3,,,菜鸟

    var frr = [1, 2, 3, 4, 5]
    var g = frr.join('|')
console.log(g, frr);//1 2 3 4 5     1_2_3_4_5     1|2|3|4|5    1,2,3,4,5

1.7、concat(x)尾部合并

    var grr = [1, 2, 3]
    var hrr = [4, 5, 6]
    grr = [...grr, ...hrr]//[1, 2, 3, 4, 5, 6]   改变原数组
    var h = grr.concat([4, 5, 6])
console.log( grr);// [1, 2, 3, 4, 5, 6]   [1, 2, 3]

1.8、reverse()颠倒顺序

    var irr = ['a', 'b', 'c']
console.log(irr.reverse(), irr);//都 ['c', 'b', 'a']

1.9、slice(开始位置,结束位置)

    var krr = ['a', 'b', 'c']
console.log(krr.slice(1, 2),krr);//['b']     ['a', 'b', 'c']
console.log(krr.slice(-2, -1));//['b']

1.10、splice(开始位置,删除个数,新插入元素)

注:只插入元素,第2个参数为0;拆分数组,只写第1个参数

    var lrr = ['a', 'b', 'c', 'd', 'e', 'f']
console.log(lrr.splice(4,2),lrr);// ['e', 'f']      ['a', 'b', 'c', 'd']
console.log(lrr.splice(4,2,'1','2'),lrr);// ['e', 'f']      ['a', 'b', 'c', 'd', '1', '2']
console.log(lrr.splice(-4,2),lrr);//['c', 'd']       ['a', 'b', 'c', 'd', '1', '2']
console.log(lrr.splice(1, 0, 3), lrr);//[]        ['a', 3, 'b', 'c', 'd', 'e', 'f']
console.log(lrr.splice(3), lrr);//  ['d', 'e', 'f']    ['a', 'b','c']

1.11、sort()排序

    var mrr = ['d', 'e', 'c', 'f', 'a', 'b']
    var nrr = [11, 101, 10111]
console.log(mrr.sort(), mrr);// 都 ['a', 'b', 'c', 'd', 'e', 'f']
console.log(nrr.sort(), nrr);// 都 [101, 10111, 11]
    var arr1 = [
        { name: "张三", age: 30 },
        { name: "李四", age: 24 },
        { name: "王五", age: 28 }
    ]
    arr1.sort(function (o1, o2) {
        return o1.age - o2.age;//升序
    })
console.log(arr1);
    // [{ name: '李四', age: 24 },
    // { name: '王五', age: 28 },
    // { name: '张三', age: 30 }]

1.12、map()、forEach()循环

注:forEach没有返回值return

    var numbers = [1, 2, 3];
    let bian = numbers.map((i) => {
        return i + 1
    })
console.log(bian, numbers);//[2, 3, 4]  [1, 2, 3]

1.13、filter()过滤

    let fs = arr1.filter((i) => {
        return i.age > 24
    })
console.log(fs, arr1);//只剩下age>24的值

1.14、fill("替换元素",开始位置,结束位置)

    let srr = ["一", '二', '三', '四', '五']
console.log(srr.fill("A"), srr);//都  ['A', 'A', 'A', 'A', 'A']
console.log(srr.fill("A", 1, 4), srr);//都   ['一', 'A', 'A', 'A', '五']

1.15、copyWithin(开始位置,结束位置)

    let num = [1, 2, 3, 4, 7, 9, 10]
    // 从索引3(包括3)往后的所有值,替换从索引0(包括0)往后的对应值
console.log(num.copyWithin(0, 3), num);//都  [4, 7, 9, 10, 7, 9, 10]

1.16、案例分享

    //例题: 数组转对象
    let arr1 = ["username=bobi", "password=123"];
    let obj = {};
    for (let i = 0; i < arr1.length; i++) {
        var arg = arr1[i].split("=");
        //['username', 'bobi']   ['password', '123']
        obj[arg[0]] = arg[1];
    }
console.log(obj);//username: 'bobi', password: '123'

    //例题:将数组型对象转换成数组
    let obj1 = { 0: '菜鸟', 1: '19', length: 2 };
    let objArr = Array.from(obj1);
console.log(objArr);// ['菜鸟', '19']

1.17、检测

instanceof 、 Array.isArray :检测是否是数组


console.log(objArr instanceof Array);//true
console.log(Array.isArray(objArr));//true

总结:

不会改变原数组的valueOf()indexOf(找的元素, 找的开始位置)lastIndexOf()includes()toString()join('分隔符')toLocaleString()concat(x)slice(开始位置,结束位置)map()filter() 等11个方法。

二、字符串

2.1、字符串转数组:split('分隔符')

    let url = 'username=dazhang'
console.log(url.split('='), url);//['username', 'dazhang']   'username=dazhang'

2.2、找:search('元素')、charAt(下标)

    let str = 'a1c3B2D4d'
console.log(str.search('1'));//1下标
console.log(str.search(/D/i));//6下标

    let str2 = 'ABC'
console.log(str2.charAt(1),str2);//B   ABC

2.3、截取:substring(开始位置,结束位置)、substr(开始位置,截取长度)

    let str = 'a1c3B2D4d'
    // substring(开始位置,结束位置) 不包括结束位置  返回截取内容  不改变原字符串
    // substr(开始位置,截取长度)    可以负数       返回截取内容  不改变原字符串
console.log(str.substring(1), str);//1c3B2D4d   a1c3B2D4d
console.log(str.substring(1, 3), str);//1c   a1c3B2D4d
console.log(str.substr(1, 3), str);//1c3 a1c3B2D4d

2.4、替换:replace(/'旧'/gi, '新元素')

    let str1 = '我是lisaboy大哥是太古'
console.log(str1.replace(/是/gi, '认识'), str1);//我认识lisaboy大哥认识太古  我是lisaboy大哥是太古'

2.5、repeat(复制次数)

    let str2 = 'ABC'
console.log(str2.repeat(2), str2);//ABCABC   ABC

  总结:

字符串和数组都有的方法:lengthconcat()indexOf()lastIndexOf()slice().

字符串方法都不会改变原来的字符串,只会返回新的内容.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值