• JS 7


    1. ***数组:

       API:

         拼接和选取

         修改

         翻转

    ****排序: 自定义排序算法: 冒泡排序

                  sort()

    1. 拼接和选取:

       拼接: 将其它元素或其它数组拼接到当前数组末尾,返回新数组

          var newArr=arr1.concat(值1,值2,arr2,......)

          强调: 1. 无权修改原对象,只能返回新对象

                   2. 打散传入的数组参数——珍贵

       选取: 复制原数组中指定位置的元素组成新数组

          var subArr=arr1.slice(starti,endi+1);

          强调: 1. 无权修改原对象,只能返回新对象

                   2. 规律: 所有两个参数都是下标的API,都含头不含尾

          简写: 1. 省略第二个参数: arr1.slice(starti)

                          从starti位置一直选取到结尾

                   2. 不写参数: arr1.slice()——复制整个数组中所有元素

                   3. 如果离结尾近:

                          arr1.slice(arr1.length-n,arr1.length-m+1)

                          选择倒数第n到倒数第m的元素

                          arr1.slice(-n,-m+1);

    2. 修改数组splice: 删除,插入,替换

        删除: arr.splice(starti,n) 从arr中starti开始,删除n个元素

            强调: 1. 不遵循含头不含尾

                     2. 直接修改原数组

                     3. starti也支持负数参数,表示倒数第n个位置

            简写: 省略第二个参数: arr.splice(starti) 删除starti后所有

            返回值: var deletes=arr.splice(starti,n)

                  返回被删除的元素组成的临时新数组

        插入: arr.splice(starti,0,值1,值2,...)

                  在arr中starti位置插入: 值1,值2,...

                  原starti位置及其之后的值,向后顺移

            强调: 不能打散数组参数

        替换: arr.splice(starti,n,值1,值2,...)

                  在arr中先删除starti位置后的n个元素

                             再在starti位置插入新元素

            强调: 删除的元素个数和插入的新元素个数不必一样

                    数组自动调整length

    3. 翻转数组: arr.reverse();

    4. ****排序:

        自定义排序算法: 冒泡,快速,插入

           冒泡: 原理:

    1. ***数组:

       排序:

       栈和队列:

       二维数组:

    2. ***String

    1. 排序:

        自定义排序: 冒泡

        排序API: arr.sort();

           大问题: 默认将所有元素转为字符串再按字符串排列

                      只能对字符串类型的元素正确排序

           解决: 自定义比较规则:

             比较器函数: 专门比较任意两值大小的函数:

                       要求: 两个参数: a,b

                                返回值: 如果a>b,就返回正数

                                            如果a<b,就返回负数

                                            如果a=b,就返回0

             最简单的数字比较器函数:

               function compare(a,b){return a-b;}

             如何使用: 将比较器函数名作为参数传入sort函数中

               arr.sort(compare) //强调: 不要加()

               compare函数作为参数传入sort中,被sort反复调用

             降序: 颠倒比较器函数的正负号,可改升序为降序

               最简单的数字降序比较器函数:

                  function compare(a,b){return b-a;}

    2. 栈和队列: js中没有专门的栈和队列类型

                       一切栈和队列都是用普通数组模拟的

       栈: 一端封闭,只能从另一端进出的数组

        特点: FILO

       何时: 今后只要希望始终使用最新的元素时

       如何:

          1. 从结尾出入栈:

              入: arr.push(值) => arr[arr.length]=值

              出: var last=arr.pop()

              特点: 每次出入栈,都不影响其他元素的位置

          2. 从开头出入栈:

              入: arr.unshift(值)

              出: var first=arr.shift()

              特点: 每次出入栈,其它元素位置都会依次顺移

            

       队列: 只能从一端进入,从另一端出的数组

         特点: FIFO

       何时: 只要希望按先后顺序使用数组中的元素时

         1. 结尾入: 入: arr.push(值)

         2. 开头出: var first=arr.shift()

           

    3. 二维数组:

      什么是: 数组中的元素又引用了另一个子数组

      何时: 1. 保存横行竖列的二维数据结构

               2. 对一组数据,再进行细致分类时

      如何:

         创建: 2种:

            1. 创建数组时,还不知道子数组的内容:

                var arr=[];

                arr[0]=[值1,值2,...];

                arr[1]=[值1,值2,...];

            2. 创建数组同时初始化元素:

                 var arr=[

                       [值1,值2,...],

                       [值1,值2,...],

                       ...

                 ]

         访问: arr[r][c]->用法和普通数组元素的用法完全一样

             强调: 二维数组,行下标r不能越界!——报错!

         遍历: 外层循环控制行,内层循环控制列

            for(var r=0; r<arr.length; r++){//遍历每一行

                for(var c=0;c<arr[r].length;c++){//遍历第r行中每一列

                 arr[r][c]//当前元素

                }

            }

  • 相关阅读:
    Ubuntu的启动配置文件grub.cfg(menu.lst)设置指南zz
    Qt/E客户端服务期间通信数据串行化
    开源协议简介BSD、 Apache Licence、GPL、LGPL、MIT转载
    Qt/E服务器到客户端的消息传递
    解决 Windows 和 Ubuntu 时间不一致的问题转载
    Qt/E服务器客户端架构
    Qt/E中的键盘设备管理
    Qt/E服务器客户端的通信机制
    解决 ssh 登录慢 转载
    c# 扩展方法奇思妙用变态篇一:由 Fibonacci 数列引出 “委托扩展” 及 “递推递归委托”
  • 原文地址:https://www.cnblogs.com/Hale-Proh/p/7199622.html
Copyright © 2020-2023  润新知