字符串和数组的方法

121 阅读4分钟

常见和字符串和数组的方法

1、常用字符串方法
//输出结果三个名字会紧挨着 '李狗蛋张翠花赵铁柱'//1.反转数组
// 开发当中 后台返回的数据可能是倒序,我们需要反转数组保证逻辑和用户逻辑一致

        /* 
            let arr = ['12.20','12.29','1.2']
            转换成

            arr = ['1.2','12.29','12.20']
        
        */
        let arr = [4, 3, 2, 1, 9, 8]
        // 反转数组
        arr.reverse()
        console.log(arr);//会得到[8, 9, 1, 2, 3, 4]

//2.清空数组
        let arr = [1, 2, 3, 4, 5, 6, 7]
        let str = '1,2,3,4,5,6,7,8'
        // arr = []
        // str = ''

        // 将数组的长度置为0即可清空数组
        // arr.length = 0
        // 注意:!!!但是字符串的长度置为0 是没有任何效果的
        // str.length = 0
        // console.log(arr[2]);
        // 字符串也可以通过索引的方式匹配到指定字符
        console.log(str[1]);
//3.数组转换字符串
        let arr = ['李狗蛋', '张翠花', '赵铁柱']
        // 用一个变量来接受转换后的结果
        // arr.join(转换字符串后的分隔符)
        // 默认是逗号
        // let str = arr.join('-')输出结果三个名字会用中横线隔开着'李狗蛋-张翠花-赵铁柱'
        let str = arr.join('')
        console.log(str);//输出结果三个名字会紧挨着 '李狗蛋张翠花赵铁柱'

//4.数组排序
 let arr = [135792468]

        // arr.sort() 数组排序

        // a - b从小到大排序
        arr.sort(function (a, b) {
            return a - b
        })

		//从大到小排序
        arr.sort(function (a, b) {
            return b - a
        })
        console.log(arr);
//5.splice属性的可以追加元素(从哪里删,删几个,追加元素,追加元素)
 let arr = ['a', 'b', 'c', 'd']

        // arr.splice(从哪里删,删几个,追加元素,追加元素)
        arr.splice(0, 2, 'e', 'f')
        console.log(arr);//最后输出结果为从0位开始删除两个把a,b删除了,然后添加e,f到末尾位置最后输出的结果为['c', 'd','e', 'f']
2、交换数据,展开运算符方法
//1.交换两个数据的类型
	    let a = 1
     	let b = 10;
        // 交换语句的 前面结束语句一定要带分号,否则会报错
        [a, b] = [b, a]
        console.log(a, b);//数出结果为 a=10,b=1


//2.展开运算符
        let arr1 = [1, 2, 3, 4, 5, 6]

        // 复制的是地址,最后的数据其实都是同一个
        // 展开运算符 ...
        let arr2 = [...arr1]

        arr2[0] = 1000
        console.log(arr1);
//展开运算符可以对数组里的每一项进行操作,不需要遍历
3.数组遍历的方法
//1.forEach循环的方法
let arr = [1,2,3,4,5,6,7,8,9]
        let newArr = []
        // for (let i = 0; i < arr.length; i++) {
        //     newArr.push(arr[i] + 10)
        // }
        // v -> value值对应数组的每一项里面的内容
        // i -> 索引.下标
        arr.forEach(function (v, i) {
            // v + 10 推入到新数组中 newArr.push()
            newArr.push(v + 10)
        })
        console.log(newArr);//输出的新数组里的每一项都完成了+10
//Array.forEach(function (v, i){ }),用于调用数组的每个元素,并将元素传递给回调函数。原数组不变

//2.map遍历
        let arr = [{
            name: '李狗蛋',
            age: 16,
            sex: '男'
        }, {
            name: '张翠花',
            age: 20,
            sex: '女'
        }, {
            name: '赵铁柱',
            age: 25,
            sex: '男'
        }, {
            name: '王小二',
            age: 19,
            sex: '男'
        }]

        let newArr = arr.map(function (v, i) {
            // v.age = v.age + 1
            v.age += 1
            return v
        })
        console.log(newArr)

//array.map(function (v, i){ }),原数组的每一项执行函数后,返回一个新的数组。原数组不变


//3.filter遍历
 	    let arr = [13, 0, '', 90, 78, '', '']
        // 去掉数组中的空字符串
        let newArr = arr.filter(function (v, i) {
            // return 符合推入新数组的条件->布尔值(过滤)
            return v !== '' && v !== 0
        })
        console.log(newArr);
//array.filter(function(v,i){}),过滤数组中,符合条件的元素并返回一个新的数组

4.数组去重,与将字符串变成驼峰命名
 //1.去重操作
let arr = ['aa', 'bb', 'aa', 'cc', 'bb']
        let newArr = arr.filter(function (v, i) {
           
            // i 数组当中每一项的索引值
            
            // 第一轮 arr.indexOf('aa') -> 0   i -> 0
            // 第二轮 arr.indexOf('bb') -> 1   i -> 1
            // 第三轮 arr.indexOf('aa') -> 0   i -> 2
            // 第四轮 arr.indexOf('cc') -> 3   i -> 3
            // 第五轮 arr.indexOf('bb') -> 1   i -> 4
            return arr.indexOf(v) === i
        })
        console.log(newArr);
//2.将字符串变成驼峰命名法
let str = 'GET-elemenTs-bY-cLAss-nAMe'
        // getElementsByClassName

        function getName(str) {
            // 1. 先要统一的变换成小写字母
            let newStr = str.toLowerCase()

            // 2. 字符串根据-分隔成数组
            let arr = newStr.split('-')

            let newArr = arr.map(function (v, i) {
                // 分支判断语句
                // 第一个单词不需要转换大写
                if (i !== 0) {
                    // v 代表遍历的当前项目 -> elements
                    // v[0] 首字母 -> e
                    // v[0].toUpperCase()  ->E
                    // console.log(v[0].toUpperCase());
                    return v[0].toUpperCase() + v.substr(1)
                }
                return v
            })

            // 拿到新数组后,需要通过arr.join() 转换成字符串

            let res = newArr.join('')
            return res
        }