4.29 数组的索引和排序

Posted xiaokeai233

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.29 数组的索引和排序相关的知识,希望对你有一定的参考价值。

# 一、数组    ***************
1. 数组的操作
    - 索引(编号,序号,从0开始)
        ```js
        var arr = ["hello",3,4,5,"world"];
        ```
        - 数组是一个有序数据的集合
        - 有序的序号,索引
        - 从0开始
        - 到哪结束
            - 根据长度,得出,到length-1
            - 数组的第一个:数组[0]
            - 数组的最后一个:数组[数组.length-1]
        - 增
            - 增加数组的长度
            - 给不存在的位置赋值
            ```js
            arr[arr.length] = "哈哈哈";
            ```
        - 删
            - 缩短数组的长度
            ```js
            // 原有长度是5
            arr.length = 3;
            ```
        - 改  ******
            - 找到对应索引的数据,赋值(覆盖)
            ```js
            arr[要修改数据的索引] = "四";
            ```
        - 查  ******
            - 根据索引直接获取
            ```js
            arr[指定位置的索引]
            ```

    - 数组的方法(对象的方法)
    
        - ***********************
        - 方法集锦:https://www.jianshu.com/p/7e160067a06c

2. 数组的小分类,不同叫法,特点:里面的数据类型一致
    - 对象数组
        - 都是对象
    - 二维数组
        - 数组里面都是数组
    - 如何使用
        - 逐层解析
3. 数组的排序
    - 冒泡:
   var arr = [9,8,7,6,5];
    console.log(arr);
    for(var i=0;i<arr.length-1;i++){
        for(var j=0; j<arr.length-1-i; j++){
            if(arr[j] > arr[j+1]){
                var ls = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = ls;
            }
        }
    }
    // 两两比较,大的放后面:冒泡排序
    console.log(arr);
 
    - 选择:
 var arr = [9,8,5,6,7];
    console.log(arr);
    for(var i=0;i<arr.length-1;i++)
     // 因为每一行第一个索引都在变,所以,要将这个ls变量,放在第一个循环的内部
        var ls = arr[i];
 // ls保存了数组中某个数据,lsIndex保存这个数据的索引
        var lsIndex =
        for(var j=i+1;j<arr.length;j++){
            if(ls > arr[j]){
                // ls里面的数据如果大了,换成小的
                // 因为在找最小的
                ls = arr[j];
                // 如果ls里面的数据换了,lsIndex也跟着换
                lsIndex = j;
            }
        }
        // ls必然已经是最小的了
        // 交换数组中的数据
       
        // 先把真正的第一位拿走,否则会被覆盖
        // 放到真正的最小值的位置
        arr[lsIndex] = arr[i];
        // 再把ls变量中,最小的值,放在第一位
        arr[i] = ls;
    }
     // 按照从左到右的顺序,依次取出每个数据,后后面所有数据做比较,找到最小值,交换
    // 选择排序

    console.log(arr);
4. 新的遍历方式,不算循环
 

以上是关于4.29 数组的索引和排序的主要内容,如果未能解决你的问题,请参考以下文章

排序专题之索引排序

数组排序和返回索引js

数组排序返回索引-python和c++的实现

使用数组索引对数组进行排序

使用 Realm 和 NSPredicate 按数组索引排序

排序后如何获取索引排列