js 数组的 创建 操作 遍历 排序

原创 2016年08月28日 21:24:07
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>

//---------------------------- 数组的创建 方式-------------------------------
    //理解:数组就是一个容器 装数据用的 通过角标来获取对应位置的值
    //定义1(字面量定义)
    var array1 = [1,2,3];//数组长度是3 重0角标开始
    var array2 = [];
    console.log(typeof array1);  //object
    console.log(array1); //[1,2,3]

    //定义2(对象创建)
    var arr1 = new Array();
    var arr2 = new Array("关羽","张飞","刘备");
    var arr3 = new Array(1,2,3);
    var arr3 = new Array(3);
    console.log(arr1); //空数组[]
    console.log(arr2); //["关羽", "张飞", "刘备"]
    console.log(arr3); //后面定义的变量会覆盖前面的 Array(3) 是数组的长度是3 没有值


//---------------------------- 数组的操作 --------------------------

    var arr = ["刘备","关羽","张飞"];
    //数组长度
    console.log(arr.length);

    //通过索引值获取元素。
    console.log(arr[0]); //刘备
    console.log(arr[1]); //关羽
    console.log(arr[1222]); //由于arr没有这么大的角标 所以undefined

    //通过索引值,给元素赋值
    arr[0] = "韩信";
    arr[1] = "萧何";
    arr[2] = "张良";

    console.log(arr[0]); //韩信
    console.log(arr[1]); //萧何
    console.log(arr[2]); //张良

//---------------------------- 数组的遍历操作 -----------------------------

    //1-10之间能被3整数的数字,存到数组中
    //数组长度本身开始的时候是0,紧接着每添加进去一个值,数组长度自增1;
    //新的变量j可以用,arr.length替代,因为初始化值也是0,每添加一个元素也是自增1.
    var arr4 = [];
    for(var i=1;i<=10;i++){
        if(i%3===0){
            arr4[arr4.length] = i;
        }
    }
    console.log(arr4);

    //将字符串数组用|或其他符号分割 不该遍老数组
    var arr5 = ["吕超","赵云","典韦","关羽","马超","张飞"];
    var str = arr5[0];
    var separator = "|";
    for(var i=1;i<arr5.length;i++){
        str += separator+ arr5[i];
    }
    console.log(str);

    //数组翻转  1.操作原数组,让原数组第一位和最后一个位调换位置,以此类推
    var arr6 = ["刘备","关羽","张飞","诸葛亮","马超","黄忠","姜维"];
    for(var i=0;i<arr6.length/2;i++){
        //让前后数组中的元素交换位置。
        var temp = arr6[i];
        //前面项和对应的后面项交换位置。(arr.length-1-i = 倒数第i+1项)
        arr6[i] = arr[arr6.length-1-i];
        arr6[arr6.length-1-i] = temp;
    }
    console.log(arr6);


//---------------------------- 冒泡排序 ---------------------------------
    //简单版
    var arr7 = [7,6,5,4,3,2,1];
    console.log("为排序的arr7:"+arr7);
        for(var i=0;i<arr7.length-1;i++){
            //2.指定轮数和次数(内循环控制次数)
            for(var j=0;j<arr7.length-1;j++){
                //3.判断是否符合标准。如果符合标准交换位置。
                //从小到大排列顺续,如果前面的比后面的大,那么交换位置。
                if(arr7[j] > arr7[j+1]){
                    var temp = arr7[j];
                    arr7[j] = arr7[j+1];
                    arr7[j+1] = temp;
                }
            }
        }
    console.log("排序后的arr7:"+arr7);

    //中级版
    //每轮比较少比较一次。(每一轮都会比较出一个最大值,然后后一轮没有必要再比较了,
    //所以没比较一轮,就少比较一次。。。)
    var arr8 = [98,7,6,5,4,3,2,1];
        console.log("排序前的arr8:"+arr8);
        var m = 0;
        var n = 0;
        for(var i=0;i<arr8.length-1;i++){
            for(var j=0;j<arr8.length-1-i;j++){
                if(arr8[j] > arr8[j+1]){
                    var temp = arr8[j];
                    arr8[j] = arr8[j+1];
                    arr8[j+1] = temp;
                }
                m++;
            }
            n++;
        }
    console.log("排序后的arr8:"+arr8+"m: "+m+" n: "+n);


    //最终版
    //如果比较完备提前结束比较。(判断,如果本次比较没有移动任何元素,那么说明已经比较完成)
    var arr9 = [33,21,90,1, 2, 3, 4, 5, 6, 7];
    console.log("排序前的arr9:"+arr9);
        var m = 0;
        var n = 0;
        for(var i=0;i<arr9.length-1;i++){
            //开闭原则。(写在第一个for循环里,是为了,每轮比较初始化bool变量变为true。)
            var bool = true;
            //2.指定轮数和次数(内循环控制次数)
            for(var j=0;j<arr9.length-1-i;j++){
                //3.判断是否符合标准。如果符合标准交换位置。
                //从小到大排列顺滑,如果前面的比后面的大,那么交换位置。
                if(arr9[j] > arr9[j+1]){
                    var temp = arr9[j];
                    arr9[j] = arr9[j+1];
                    arr9[j+1] = temp;
                    bool = false;
                }
                m++;
            }
            n++;
            //bool这个变量默认值为true;如果本轮比较有一对元素相互交换位置,那么也不能跳出循环。
            //但是,如果本轮比较没有任何元素相互交换位置,那么说明已经比较完成,可以跳出循环。
            if(bool){
                break;
            }
        }
    console.log("排序后的arr9:"+arr9+"m: "+m+" n: "+n);
    
</script>
</body>
</html>

版权声明:本文为博主原创文章,未经博主允许不得转载。

js中数组的排序

[javascript] view plain copy console.log("------默认排序(ASCII字符排序)------");  var arr = [1,2,55,12,...

面试中常见的数组的操作:遍历,最值,反转,冒泡排序,二分查找(附代码)

数组:存储同一种数据类型的多个元素的容器;数组中的索引从0开始,最大编号是数组的长度-1(减1); 下面给大家列出数组常见的几种操作:     A 遍历          B 获取最值     ...

js数组的操作与遍历

js的数组的操作函数实在是太多了(比C#要多得多),遍历的方法也有好几个,这里有必要自己总结一下: 数组操作 方法描述FFNIEconcat()连接两个或更多的数组,并返回结果。1...

NO4.java学习笔记(数组、数组的操作【遍历、排序、查找】)

一、数组。 概念:同一种类型的数据的集合。其实数组就是一个容器。 好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。 格式:元素类型[]  数组名= new 元素类型[元素个数或者数组长度]...

Java第四章【流程控制与数组、数组的操作【遍历、排序、查找】】

1.分支结构:用于实现根据条件来选择地执行某段代码。if  switch 2.循环结构:用于实现根据循环条件重复执行某段代码。while 、do  while 、for 、foreach循环以更简单的...

02-Java基础(数组-常见操作-遍历

  • 2016年04月28日 13:22
  • 7.72MB
  • 下载

js 实现 JavaScript遍历数组

  • 2010年03月30日 14:57
  • 305B
  • 下载

用jquery实现cookie的操作以及创建js数组和遍历js数组,js对象,jquery.json的使用

我为什么把这些内容放在一个文章了说呢?因为在真实使用的时候一般都会设计到。在读取cookei时肯定会有相应的其他操作。 用jquery实现对cookie的操作,这里用到的是:jquery.coo...

JS基础第六天:创建数组 遍历的基础方法

宁徽说事 2017-05-25 09:05 1.***数组: 什么是: 内存中连续存储多个数据的数据结构,再起一个统一的名字 为什么: 普通的变量只能存储一个数据 程序=数据结构+算法: 算法: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:js 数组的 创建 操作 遍历 排序
举报原因:
原因补充:

(最多只允许输入30个字)