⭐数组-day05

【数组的概念】

  • 所谓数组,就是将多个元素按一定顺序排列放到一个集合中,这个集合我们就称之为数组。

【数组的创建】

1、通过数组字面量

var arr1 = []; 					// 创建一个空数组 
var arr2 = [1, 2, 3, 4,'a']; 		// 创建一个包含3个数值的数组,多个数组项以逗号隔开 

2、通过构造函数Array()

//调用时没有参数:
 var a = new Array(); 		 				//创建一个空数组
var arr=new Array(1, 2, 3, 4,'a');			

【数组元素的读和写】

数组的下标

// 格式:数组名[下标] 下标又称索引 

// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。 

var arr = ['red', 'green', 'blue']; 

arr[0];		 // red 

arr[2];		 // blue 

arr[3];		 // 这个数组的最大下标为2,因此返回undefined

【读:数组名[下标]】

注意:这里下标是从0 开始的。

【写:数组名[下标] = 值】

注意:如果声明的长度大于写的下标,则正常写入,但是长度会发生变化

【数组长度】

 var arr = ['a', 'b', 1, 2, 3];
     arr.length // 5 
     console.log(arr);

【数组中常用的方法】

push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度

        // var arr=[0,1,2,3,4,5,6,7,8,9];
        //     arr.push('泰国','新加坡','可添加多个元素');	//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "泰国", "新加坡", "可添加多个元素"]
        //     console.log(arr);

**pop() 方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。 **

           var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
        arr.pop();              	//[0, 1, 2, 3, 4, 5, 6, 7]
        var s = arr.pop();      	//8,在尾部删除第一个元素,并获取删除的内容

        console.log(arr);
        console.log(s);

shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。

    // var arr=[0,1,2,3,4,5,6,7,8,9];
        //     arr.shift();				//[1, 2, 3, 4, 5, 6, 7, 8, 9]
        //     console.log(arr);

unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度。

 // var arr=[0,1,2,3,4,5,6,7,8,9];
        //     arr.unshift('中国');		//["中国", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
        //     console.log(arr);

join() 方法将一个数组的所有元素连接成一个字符串并返回这个字符串。

 var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
        var str = arr.join('-');        //[0-1-2-3-4-5-6-7-8-9]
        console.log(str);

reverse() 方法将数组中元素的位置颠倒,并返回该数组。该方法会改变原数组。

         var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
         arr.reverse();             //[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
         console.log(arr);

sort()对数组进行排序

    var arr=[12,33,55,66,22,77,8.9];
           arr.sort(function(a,b){
               return a-b;
           });
           console.log(arr);

concat数组元素拼接

     var arr6=[12,33,55,66,22,77,8.9];
           var arr7=[12,33,55,66];
            var arr8=arr6.concat(arr7);
            console.log(arr8);

splice删除或替换现有元素或添加新的元素来修改数组

     var arr9=[12,33,55,66,22,77,8.9];
         arr9.splice(3);						//删除3号元素后所有的元素(包括3号)
         console.log(arr9);

        arr9.splice(2,1) 						//删除2号元素以后的第一个元素
        console.log(arr9);
        arr9.splice(2,1,'新增的','新增的');		//删除2号元素一个元素,增加'新增的''新增的'亮相内容
        console.log(arr9);

**slice()选取数组的一部分,并返回一个新数组,包左不包右

  var arr9=[12,33,55,66,22,77,8.9];
        console.log(arr9);
        var newArr = arr9.slice(2, 5); 			//选取数组的一部分,并返回一个新数组,包左不包右
        console.log(newArr);


        var arr=[12,12,33,33,55,66,22,77,8.9];
        console.log(arr);
        var str=arr.slice(1,4);
        console.log(str);

【数组遍历】

//第一种方法: 
var arr = [0,1,2,3,4,5,6,7,8,9]; 
for(var i=0;i<arr.length;i++){ 
console.log(arr[i]); 
}

//第二种方法: 
var arr = [0,1,2,3,4,5,6,7,8,9]; 
for(var key in arr){ 
console.log(arr[key]); 
}

【数组去重】

indexOf() 匹配到要寻找的元素在数组中第一次出现的索引值,找到则返回索引值,找不到则返回-1

   var arr=[12,12,33,33,55,66,22,77,8.9];   
         console.log(arr);
         var newArr=[];
         for(var i=0;i<arr.length;i++){
            if(newArr.indexOf(arr[i])==-1){
            newArr.push(arr[i]);

            }
         }  
         console.log(newArr);

【数组排序】

//    var arr=[12,33,55,66,22,77,8.9];
        //    arr.sort(function(a,b){
        //        return a-b;
        //    });
        //    console.log(arr);

【数组检验】

var arr=[1,2,3]; 
var str='123'; 
//第一种方法 instanceof 
console.log(arr instanceof Array);//true 
console.log(str instanceof Array);//false 

//第二种方法 Array.isArray() 
console.log(Array.isArray(arr));//true 
console.log(Array.isArray(str));//false

【二维数组】

//定义 
var arr=[]; 
arr[0]=['a','b','c']; 
arr[1]=[1,2,3]; 

//访问 
console.log(arr[0]);		//["a", "b", "c"] 
console.log(arr[0][0]);		//a

【案例👇】

  //数组去重案例
         var arr=[12,12,33,33,55,66,22,77,8.9];   
         console.log(arr);
         var newArr=[];
         for(var i=0;i<arr.length;i++){
            if(newArr.indexOf(arr[i])==-1){
            newArr.push(arr[i]);

            }
         }  
         console.log(newArr);

     
 
        // 将一个数组2,3,4,5,1,65,3,1进行反转[1, 3, 65, 1, 5, 4, 3, 2]
        arr = [2, 3, 4, 5, 1, 65, 3, 1];
        arr.reverse();
        for(var i=0;i<arr.length;i++){
            document.write(arr[i]+' ')
        }



        //将一个数组[1,2,3,4,5]转换成字符串1-2-3-4-5
           var arr=[1,2,3,4,5];
            var str=arr.join('-');
            console.log(str);


        //找出数组中同时能被2和3整除的数,并求和
        var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
        var sum = 0;
        for (var i = 0; i <arr.length-1; i++) {
            if (arr[i] % 2 == 0 && arr[i] % 3 == 0) {
                sum += i;
            }
        }
        console.log(arr[i]);


        //arr=[1,2,3,4,,,3,45,65,'dji']去除未定义的值
        var arr = [1, 2, 3, 4, , , 3, 45, 65, 'dji'];
        var newArr = [];
        for (var i = 0; i <= arr.length - 1; i++) {
            if (arr[i] != undefined) {
                newArr.push(arr[i]);
            }
        }
        console.log(newArr);



        //去除数组中的重复元素,arr=['w','d','b','d','w']
        var arr = ['w', 'd', 'b', 'd', 'w'];
        var newArr = [];
        for (var i = 0; i <= arr.length-1; i++) {
            if (newArr.indexOf(arr[i]) == -1) {
                newArr.push(arr[i]);
            }
        }
        console.log(newArr);


        //自己建立一个数组,删除第一个和最后一个元素
        var arr = [1, 2, 3, 4, 5, 6, 7, 8];
        arr.pop();
        arr.shift();
        console.log(arr);


        //给数组arr=[16,13,42,24,26,18,90]排序
           var  arr=[16,13,42,24,26,18,90];
                arr.sort(function(a,b){
                    return a-b;
                });
                console.log(arr);


        /*请用数组实现:已知歌唱选手的分数为90,70,80,60,95,85,70现要求出该选手的最后成绩,
        计算方式为去掉最高分和最低分在求平均分,并打印*/
        var arr = [90, 70, 80, 60, 95, 85, 70];
        arr.sort(function (a, b) {
            return a - b;
        });
        var zg = arr.pop();
        var zd = arr.shift();
        var sum = 0;
        for (var i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        document.write('最高' + zg);
        document.write('最低' + zd);
        document.write('平均分' + sum / arr.length);


        //    找出数组arr=[1,4,6,3,6,7,12,34,5,67,78,1]中的最大值
           var arr=[1,4,6,3,6,7,12,34,5,67,78,1];
          arr.sort(function(a,b){
            return a-b;
          });
          console.log(arr[arr.length-1]);


        /*定义一个函数传入一个元素是名字和数字的数组,例如:arr=['李白',123, '杜甫', '王维',45,657, '李清照'];
         把所有字符串类型的数组,放到一个新数组中,并用for循环遍历出来,格式为'著名诗人某某'*/
        var arr = ['李白', 123, '杜甫', '王维', 45, 657, '李清照'];
        function f() {
            var newArr = [];
            for (var i = 0; i <= arr.length - 1; i++) {
                if (typeof arr[i] == 'string') {
                    newArr.push(arr[i]);
                }
            }
            for (var i = 0; i < newArr.length; i++) {
                document.write('著名诗人:' + newArr[i] + '<br>');
            }
        }
        f();   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值