• 数组中的方法详解


    一.数组的的创建
    var a = new Array();等价于a = [];
     
    二.实例方法
    1.pop(): 去除数组的最后一项,会改变原数组。
    var a = [1,2,3,4,5];
    console.log(a);//[1,2,3,4,5]
    var b = a.pop();
    console.log(a);//[1,2,3,4]
    console.log(b);//5
    2.push():从数组的尾部增加一项,会改变原数组。
    var a = [1,2,3,4,5];
    console.log(a);//[1,2,3,4,5]
    var b = a.push(6);
    console.log(a);//[1,2,3,4,5,6]
    console.log(b);//6
    3.shift(): 从数组的顶部去除一项,会改变原数组
    var a = [1,2,3,4,5];
    console.log(a);//[1,2,3,4,5]
    var b = a.shift();
    console.log(a);//[2,3,4,5]
    console.log(b);//1
    4.unshift():从数组顶部增加一项,会改变原数组
    var a = [1,2,3,4,5];
    console.log(a);//[1,2,3,4,5]
    var b = a.unshift(6);
    console.log(a);//[6,1,2,3,4,5]
    console.log(b);//6
    5.reverse(): 将数组的位置前后调换,会改变原数组
    var a = [1,2,3,4,5];
    console.log(a);//[1,2,3,4,5]
    var b = a.reverse();
    console.log(a);//[5, 4, 3, 2, 1]
    console.log(b);//[5, 4, 3, 2, 1]
    6.sort(): 将数组进行排序,参数为正数为升序,参数为负数为降序,会改变原数组
    var a = [1,10,2,3,4,5];
    console.log(a);//[1, 10, 2, 3, 4, 5]
    var b = a.sort();
    console.log(a);//[1, 10, 2, 3, 4, 5]
    console.log(b);//[1, 10, 2, 3, 4, 5]

    sort会调用每个数组项的toString()转型方法,比较字符串进行排序。

    var a = [1,10,2,3,4,5];
    console.log(a);//[1, 10, 2, 3, 4, 5]
    var b = a.sort(compare);
    console.log(a);//[1, 2, 3, 4, 5, 10]
    console.log(b);//[1, 2, 3, 4, 5, 10]
    
    function compare(value1, value2) {
    	if(value1 > value2) {
    		return 1;
    	}else if (value1 < value2) {
    		return -1;
    	}else {
    		return 0;
    	}
    }
    7.splice(): 可用于数组的删除、插入、替换,会改变原数组。
    参数为俩个时:一项是删除的位置(从0开始),另一项是删除的个数
    var a = [1,2,3,4,5];
    console.log(a);//[1, 2, 3, 4, 5]
    var b = a.splice(1,2);
    console.log(a);//[1, 4, 5]
    console.log(b);//[2, 3]

    参数为三个是:一项为删除的起始位置,一项为删除的个数,一项为添加的项

    var a = [1,2,3,4,5];
    console.log(a);//[1, 2, 3, 4, 5]
    var b = a.splice(1,2,5);
    console.log(a);//[1, 5, 4, 5]
    console.log(b);//[2, 3]
    8.join():将数组转化为字符串,join将数组中的逗号替换成空格,也可以替换成其他的。不改变原数组。 
    var a = [1,2,3,4,5];
    console.log(a);//[1, 2, 3, 4, 5]
    var b = a.join("");
    console.log(a);//[1, 2, 3, 4, 5]
    console.log(b);//12345
    console.log(typeof b);//string
    9.concat():  将俩个数组连接,不改变原数组
    var a = [1,2,3,4,5];
    var b = [6,7,8,9,10];
    console.log(a);//[1, 2, 3, 4, 5]
    console.log(b);//[6, 7, 8, 9, 10]
    var c = a.concat(b);
    console.log(a);//[1, 2, 3, 4, 5]
    console.log(b);//[6, 7, 8, 9, 10]
    console.log(c);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    10.slice(): 对数组进行浅复制(该特性使其可以将伪数组转化为数组),不会改变原数组。
    var a = [1,2,3,4,5];
    console.log(a);//[1, 2, 3, 4, 5]
    var b = a.slice(0, 1);
    var c = a.slice(1);
    var d = a.slice(1, 4);
    var e = a.slice(-2);
    var f = a.slice(-4, -2);
    console.log(a);//[1, 2, 3, 4, 5]
    console.log(b);//[1]
    console.log(c);//[2, 3, 4, 5]
    console.log(d);//[2, 3, 4]
    console.log(e);//[4, 5]
    console.log(f);//[2, 3]
     
    三.位置方法:
    1.indexOf():匹配数组,第一个参数为要匹配的数,第二个参数为起始的位置。找不到返回-1。
    var numbers = [1,2,3,4,5,4,3,2,1];
    console.log(numbers.indexOf(4));//3
    console.log(numbers.indexOf(4, 4));//5

    2.lastIndexOf(): 从后面往上找,参数同上,起始位置从正向开始数

    var numbers = [1,2,3,4,5,4,3,2,1];
    console.log(numbers.lastIndexOf(4));//5
    console.log(numbers.lastIndexOf(4, 3));//3
    console.log(numbers.lastIndexOf(4, 2));//-1

    四.迭代方法

    1.every(): 所有均满足条件则返回true否则返回false。

    var numbers = [1,2,3,4,5,4,3,2,1];
    var everyResult = numbers.every(function(item, index, array) {
        return (item > 3);
    });
    console.log(everyResult);//false

    2.filter():刷选出数组中满足该条件的的数

    var numbers = [1,2,3,4,5,4,3,2,1];
    var filterResult = numbers.filter(function(item, index, array) {
        return (item > 3);
    });
    console.log(filterResult);//[4, 5, 4]

    3.forEach():对数组中的每一项执行一些操作,没有返回值。

    var numbers = [1,2,3,4,5,4,3,2,1];
    numbers.forEach(function(item, index, array) {
        //执行某一些操作
    });

    4.map(): 对数组中的每一项执行一些操作,返回数组。

    var numbers = [1,2,3,4,5,4,3,2,1];
    var mapResult = numbers.map(function(item, index, array) {
        return item + 1;
    });
    console.log(mapResult);//[2, 3, 4, 5, 6, 5, 4, 3, 2]

    5.some(): 只要有一项满足条件则返回true否则返回false。

    var numbers = [1,2,3,4,5,4,3,2,1];
    var someResult = numbers.some(function(item, index, array) {
        return (item > 3);
    });
    console.log(someResult);//true

    五.归并方法:

    1.reduce():prev: 前一个值; cur: 当前值; index: 项的索引; array: 数组对象 。将数组中的数相加

    var values = [1,2,3,4,5];
    var sum = values.reduce(function(prev, cur, index, array) {
        return prev + cur;
    });//正向
    console.log(sum);//15

    2.reduceRight():

    var values = [1,2,3,4,5];
    var sum = values.reduceRight(function(prev, cur, index, array) {
        return prev + cur;
    });//反向
    console.log(sum);//15

    六.区分数组与对象。

    function isArray(value) {
        return Object.prototype.toString.apply(value) === "[object Array]";//小写的是方法返回的值的格式中默认的,大些的是对象的名字Array
    }
    var a = {};
    var b = [];
    console.log(isArray(a));//false
    console.log(isArray(b));//true
    

    使用自定义一个isArray函数。

  • 相关阅读:
    cf 786B. Legacy(线段树区间建图)
    cf 1416D. Graph and Queries (生成树重构+线段树维护dfs序)
    cf 1437E. Make It Increasing
    cf 1434D. Roads and Ramen (树上最长偶权链)
    cf 1413C (贪心排序+双指针)
    cf 1421E. Swedish Heroes (dp)
    CF1428 F.Fruit Sequences
    11.Redis详解(十一)------ 过期删除策略和内存淘汰策略
    10.Redis详解(十)------ 集群模式详解
    9.Redis详解(九)------ 哨兵(Sentinel)模式详解
  • 原文地址:https://www.cnblogs.com/pcd12321/p/4555424.html
Copyright © 2020-2023  润新知