前端

JavaScript数组与字符串的常用方法

2019-05-04  本文已影响0人  无尾树袋熊

数组的常用方法

    var arr1 = [1, 3, 5];
    var arr2 = new Array(2, 4, 6);
  1. length属性, 可以获取长度
    console.log(arr1.length);

判断一个对象是否是数组

1. 利用instanceof判断某个对象时候是某个构造函数创建出来的
2. 利用Array提供的内置方法isArray来判断某个对象时候是Array构造函数创建出来的
  1. 注意点:isArray有兼容性的问题, 支持H5标签的浏览器才支持
    console.log(arr1 instanceof Array);
    console.log(Array.isArray(arr2));

添加元素

    var arr1 = [];
    arr1[0] = 1;
    arr1[1] = 3;
    arr1[2] = 5;
    console.log(arr1); //1,3,5
    arr1.push(2);
    arr1.push(4);
    arr1.push(6);
    console.log(arr1);//1,3,5,2,4,6
    console.log(arr1); //1,3,5
    arr1.unshift(2);
    arr1.unshift(4);
    arr1.unshift(6);
    console.log(arr1);//6, 4, 2, 1, 3, 5
    console.log(arr1);//6, 4, 2, 1, 3, 5
    console.log(arr1.pop());
    console.log(arr1.pop());
    console.log(arr1.pop());
    console.log(arr1);//[6, 4, 2]
    console.log(arr1);//6, 4, 2, 1, 3, 5
    console.log(arr1.shift());
    console.log(arr1.shift());
    console.log(arr1.shift());
    console.log(arr1);//[1, 3, 5]

清空数组

    var arr = [1,3,5,7];
    console.log(arr);//[1, 3, 5, 7]
    // arr = []; //方法一 推荐
    // arr.length = 0; //方法二
    arr.splice(0, arr.length); //方法三 
    console.log(arr);//[]

删除数组元素的注意点:

  1. 数组中的元素被删除之后, 数组的length属性获取的长度会变化
  2. 数组中前面的元素被删除之后, 后面元素的索引会发生变化
  3. 从后往前删除最好
    var arr = [1, 3, 4, 5, 6];
    // for(var i = 0;i < arr.length;i++){
    //     arr.splice(i, 1);
    // }
    for(var i = arr.length;i >= 0;i--){
        arr.splice(i, 1);
    }
    console.log(arr);

数组拼接

    var arr1 = [1,3,5];
    var arr2 = [2,4,6];
    // var res = arr1 + arr2;//返回string
    var res = arr1.concat(arr2);
    console.log(res);
    console.log(res.toString());//返回string
    console.log(res.valueOf());//返回自己本身

数组查找

    var arr = [1, 3, 5, 4, 5, 7, 9];
    var res = arr.indexOf(5);
    console.log(res); //2
    var arr = [1, 3, 5, 4, 5, 7, 9];
    var res = arr.lastIndexOf(5);
    console.log(res);//4
    var arr = [1, 3, 5, 4, 5, 2, 9];
    var res = arr.find(test);
    function test(ele) {
        return ele >= 4;
    }
    console.log(res); //5
    var arr = [1, 3, 5, 4, 5, 2, 9];
    var res = arr.findIndex(test);
    function test(ele) {
        return ele >= 4;
    }
    console.log(res); //2
    var arr = [1, 3, 5, 4, 5, 2, 9];
    var res = arr.filter(function(ele) {
        return ele >= 4
    });
    console.log(res);//[5, 4, 5, 9]

数组截取

    var arr = [1,2,3,4,5,6];
    var arr1 = arr.slice(0, 4);
    console.log(arr1); //[1, 2, 3, 4]

数组转换为字符串

    var arr = [1, 3, 5, 7];
    // console.log(arr.toString());//"1,3,5,7"
    console.log(arr.join("-"));//1-3-5-7

every()

    var arr = [2, 3, 5, 4, 5, 7, 9];
    var res = arr.every(function (ele) {
        return ele >= 2;
    });
    console.log(res); //true

some()

    var arr = [2, 3, 5, 4, 5, 7, 9];
    console.log(arr.some(function (ele) {
        return ele >= 8;
    }));//true

数组排序

    var arr = [2, 3, 5, 4, 5, 7, 9, 11];
    // console.log(arr.sort());//[11, 2, 3, 4, 5, 5, 7, 9]
  1. 1.如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前;
  2. 如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变
  3. 如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。
.sort(function (a, b) {
        // 直接return, 用第一个参数减去第二个参数的结果, 就是升序排序
        // 直接return, 用第二个参数减去第一个参数的结果, 就是降序排序
        // return a - b;
        return b - a;
    });
    var arr = [2, 3, 5, 4, 5, 7, 9, 11];
    // console.log(arr.sort(function (a, b) {
    //     return a - b;
    // })); //[2, 3, 4, 5, 5, 7, 9, 11]
    console.log(arr.sort(function (a, b) {
        return b - a;
    })); //[11, 9, 7, 5, 5, 4, 3, 2]
    var arr = [1, 2, 3, 4];
    console.log(arr.reverse());//[4, 3, 2, 1]

遍历数组

    var arr = [1, 3, 5, 7];
    for(var i = 0;i < arr.length;i++){
        console.log(arr[i]);
    }
    var arr = [1, 3, 5, 7];
    arr.forEach(function (ele) {
        console.log(ele);
    })
    var arr = [1, 3, 5, 7];
    console.log(arr.map(function (ele) {
        if (ele >= 2) {
            return ele
        }
    }));//[undefined, 3, 5, 7]

字符串的常用方法

基本类型

基本类型的包装类型

    var num = new Number(999);
    var bl = new Boolean(true);
    var str = new String("zx");

常用方法

var str1 = "abc";
var str2 = 'cde';
var str3 = new String("fgh")

字符串拼接

    var str1 = "hello";
    var str2 = "world";
    console.log(str1 + str2);//推荐
    console.log(str1.concat(str2));

获取字符串中的字符

    var str = "helloworld";
    console.log(str.charAt(5)); //w
    console.log(str.charCodeAt(5)); //119
    console.log(str[5]);//w 兼容性问题, 支持H5才支持

截取子串

    var str = "www.it666.com";
    console.log(str.slice(1, 6)); //ww.it
    var str = "www.it666.com";
    console.log(str.substr(1, 6)); //ww.it6
    var str = "www.it666.com";
    console.log(str.substring(1, 6)); //ww.it

字符串查找

    var str = "www.it666.com";
    console.log(str.indexOf("6")); //6
    console.log(str.lastIndexOf("6")); //8

字符串切割

    var str = "www.it666.com";
    console.log(str.split(".")); //["www", "it666", "com"]

练习

var str = "www.it666.com"; // 基本类型
var _str = new String(str);
_str.split(".");
str.split(".");
_str = null;
var str1 = "hello";
str[1] = "d";//不可修改
    function getEle(url) {
        var idx = url.indexOf("?");
        var str = url.substring(idx + 1, url.length);
        var arr = str.split("&");
        arr.forEach(function (ele) {
            var tempArr = ele.split("=");
            console.log(tempArr);
        });
    }
    getEle("https://www.it666.com?name=zx&age=13;");
    
    //["name", "zx"]
    //["age", "13;"]
上一篇下一篇

猜你喜欢

热点阅读