JS数组基础去重及反转

什么是数组?

数组对象是使用单独的变量名来存储一系列的值。
如果你有一组数据(例如:车名字),存在单独变量如下所示:

var car1="Saab";
var car2="Volvo";
var car3="BMW";

然而,如果你想从中找出某一辆车?并且不是3辆,而是300辆呢?这将不是一件容易的事!

最好的方法就是用数组。

数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值。

数组中的每个元素都有自己的的下标,以便它可以很容易地被访问到。

创建一个数组

创建一个数组,有三种方法。

下面的代码定义了一个名为 myCars的数组对象:

  1. 常规方式:
    var myCars=new Array(); 
    myCars[0]="Saab";       
    myCars[1]="Volvo";
    myCars[2]="BMW";
    
  2. 简洁方式:
    var myCars=new Array("Saab","Volvo","BMW");
    
  3. 字面:
    var myCars=["Saab","Volvo","BMW"];
    

访问数组

通过指定数组名以下标,你可以访问某个特定的元素。(注意下标是从0开始的)如

<script>
var arr = [10,20,30,40];
console.log(arr[0])   //表示在控制台输出数组第一个元素的值
//也可以通过下标更改元素的值
arr[0] = 50;
console.log(arr);  //结果为[50,20,30,40];
</script>

在数组结尾处添加元素

可以通过数组的length属性来完成

<script>
        var arr = [10,20,30,40,50];
        console.log(arr);
        
        arr[arr.length] = 60;
        console.log(arr);        
    </script>

数组添加

数组的去重

两种方法,都是通过遍历数组元素在判断,符合条件的存入新数组
方法一 需要先把数组排序在遍历判断
方法二 使用开关思想 如果假定的变量不符合条件就跳出,符合条件的存入新数组

 var arr = [10,0,20,30,10,20,30];
        var newArr = [];
        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 temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                    }
                }
            }
            console.log(arr);
                //回调函数排序
                // console.log(arr.sort(function(a,b){return a -b}));

                //判断去重
                // 1. 遍历数组
            for(var i = 0;i < arr.length ;i++){
                //判断
                if(arr[i] != arr[i+1]){
                    newArr[newArr.length] = arr[i];
                }
            }
            console.log(newArr);

        //方法二 开关思想
            //遍历原数组
            for(var i = 0;i < arr.length;i++){
                //假定开关状态
                var flag = true;
                //遍历新数组
                for(var j = 0;j < newArr.length;j++){
                   //判断
                   if(arr[i] == arr[j]){
                       flag = false;
                       break;
                   } 
                }
                if(flag){
                    newArr[newArr.length] = arr[i];
                }
            }
            console.log(newArr);

数组的翻转 头部到尾部,尾部到头部

<script >
        var arr = [10,20,30,40,50,60];
        console.log(arr);
        
        //方法一:定义新数组
        var newArr = [];
        for(var i = arr.length-1;i >= 0;i--){
            newArr[newArr.length] = arr[i];
        }
        console.log(newArr);

        //方法二 直接在原数组翻转

        for(var i = 0;i < arr.length / 2;i++){
            var temp = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length-1-i] = temp;
        }
        console.log(arr);
    </script>
发布了17 篇原创文章 · 获赞 3 · 访问量 664

猜你喜欢

转载自blog.csdn.net/weixin_42207353/article/details/103833796
今日推荐