• js-array-数组-其他方法


    1、concat():可以连接两个或多个数组,并将新数组返回

            该方法不会对原数组产生影响

    使用变量去接收

    1. var arr=[3,4,6,7,7];
    2. var arr1=["hsdij","hisu"];
    3. var arr2=["栈的","等候"]
    4. var result=arr.concat(arr1);
    5. console.log(result)
    6. var result1=arr.concat(arr2,arr1);
    7. console.log(result1)
    8. console.log(arr)
    9. console.log(arr1)
    10. console.log(arr2)

    2、 join():该方法可以将数组转换成字符串,

            不会改变原数组,而是将转换后的字符串作为结果返回

    1. var arr=[3,4,6,7,7];
    2. var arr1=["hsdij","hisu"];
    3. var arr2=["栈的","等候"]
    4. var result=arr.join();
    5. var result1=arr2.join();
    6. console.log(result)
    7. console.log(arr)
    8. console.log(result1)
    9. console.log(arr2)

    join()默认使用,连接===》可以改变连接符     var result1=arr2.join("");//表中间不间隔

     3、reverse():该方法用于反转数组-----------该方法直接修改原数组arr.reverse();

    4、sort():对数组中的元素镜像排序=====》会影响原数组==》默认按照unicode编码排序

    如果需要进行倒序-》使用reverse()

                var arr=[3,4,6,7,7];
                var arr1=["hsdij","hisu"];
                var arr2=["栈的","等候"]
                arr.sort();
                arr.reverse();
                console.log(arr);

     注意:对于纯数字的数组,使用sort()排序时候,也会按照unicode编码来排序,所以对数字进行排序的时候,可能得到错误的结果。

    所以我们可以在sort()添加回调函数,来指定排序规则,回调函数中需要定义两个形参,浏览器分别会将数组中的元素作为实参去传递给回调函数

                var arr=[3,4,6,7,9];
        
                arr.sort(function(a,b){
                    console.log('a='+a);
                    console.log('b='+b);
                }
                );/发现会打印值。且b为索引小的值

    浏览器会根据回调函数的返回值来决定元素的顺序:

    返回值小于0会交换顺序:
    返回值大于等于0不会会交换顺序:

    1. var arr=[3,4,5,6,7,8,9954,3];
    2. arr.sort(function(a,b){
    3. if(a<=b) return 1;//前面大 不交换
    4. else if(a>b) return -1;//前面小 交换位置
    5. }
    6. );
    7. console.log(arr)

     a-b升序 b-a降序

    1. var arr=[3,4,5,6,7,8,9954,3];
    2. arr.sort(function(a,b){
    3. return a-b;//后面大于前面=正值 不交换 升序
    4. //前面大于后面交换
    5. });
    6. console.log(arr)

  • 相关阅读:
    设计模式之-单例模式
    Linux C语言开发-D5常量
    java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码
    找不到d3dcompiler_43.dll,无法继续执行代码如何解决
    如何在VScode和Jetbrain上使用备受争议的GitHub Copilot
    一文速学-Pandas处理DataFrame稀疏数据及维度不匹配数据详解
    Docker
    用 AI Agent 做面试准备和面试复盘:我写了一个Skill,把多轮面试当成系统来打
    lua的模块与类
    金融企业容器云建设中资源智能优化实践
  • 原文地址:https://blog.csdn.net/weixin_47295886/article/details/127433981