JavaScript基础之数组总结

举报
hw02441001 发表于 2020/08/04 15:51:09 2020/08/04
【摘要】 数组的概念:用一个变量存储一堆数据的数据结构。【注】JS中数组中数据可以为多种类型的,但是一般情况下,为了代码的可读性,数组中放的是同一个数据类型。数组的声明:1.通过new关键字声明var arr1=new Array();2.省略new运算符创建数组 var arr2=Array(100,true,"hello");3.直接赋值 var arr3=[100,true,"hello"];...

数组的概念

用一个变量存储一堆数据的数据结构。

【注】JS中数组中数据可以为多种类型的,但是一般情况下,为了代码的可读性,数组中放的是同一个数据类型。

数组的声明:

1.通过new关键字声明

var arr1=new Array();

2.省略new运算符创建数组

 var arr2=Array(100,true,"hello");

3.直接赋值

  var arr3=[100,true,"hello"];

【注】上述前两种方法中,如果参数只有1个,并且为数字,那么会创建一个长度为这个参数的空数组。


 数组的属性:  数组.length    数组元素的个数。  在JS中,数组的length属性是灵活的,可以直接赋值,那么就意味着数组的大小

是灵活的,我们可以通过给length属性赋值来直接改变数组大小。 通过这一点,我又想到,在销毁数组的时候,我们可以用数组.length=0;

感觉非常神奇!!!

【注】元素这个概念是针对于数组中每一个数据来说的。

访问数组的元素:直接数组[下标]访问指定元素

【注】下标是从0开始的。

数组的遍历

1.for循环遍历

   var arr=[10,20,30,40,50];

for(var i=0;i<arr.length;i++)

{

 console.log(arr[i]+' ');

}

以上代码输出结果为 10 20 30 40 50,完成了数组的遍历。

2.for...in 遍历   

for(var i in arr)

{

     console.log(arr[i]+' ');

}

以上代码也可以输出 10 20 30 40 50,完成数组遍历。

【注】

for循环遍历,每一次循环它都会对i变量进行判断,执行代码区域,对i变量进行改变;而for...in遍历呢,直接对数组进行查数一样的操作,有几个元素查几次。

区别:相比之下,for循环更加严谨,安全性高;而for...in 直接对数组遍历,运行速度更快,但是相比传统的for循环,安全性比较低。


数组的方法:

说到数组方法,我们要简单了解新名词:栈,队列。


栈其实是一种结构,特征是一头封闭,一头不封闭,生活中很多地方都存在。比如说一个桶,我们放东西在桶里,最先放的在最低层,最后才能拿出去,而且放东西和拿东西只能在同一边。

数组的两个方法形成栈结构:

               push方法:数组.push(参数1,参数2,....);  从数组的末尾添加元素,返回值为添加完元素后,数组的新长度。

               var arr=[10,20,30,40,50];

               console.log(arr.push(60));

               console.log(arr);

               结果为  

                   6

                   [10,20,30,40,50,60]

               pop方法:数组.pop();     从数组末尾取一个元素,返回值为这个元素。    

               var arr=[10,20,30,40,50];

               console.log(arr.pop());

               结果为  50



队列也是一种结构,特征是从末尾进,从头部出,其实和我们平时排队是一样的。

数组中的两个方法形成队列结构:

           shift方法:数组.shift(); 从数组的头部去下一个元素,返回值为这个元素。

               var arr=[10,20,30,40,50];

               console.log(arr.shift());

                  结果为   10

           unshift方法:数组.unshift(参数1,参数2,....)  从数组的头部添加元素,返回值为添加完元素后,数组的新长度。

               var arr=[10,20,30,40,50];

               console.log(arr.unshift(0));

               console.log(arr);

               结果为 

                       6 

                       [0,10,20,30,40,50,60]


concat()方法:数组.concat(参数1,参数2,参数3,....); 把数组1中的元素和参数合并成一个新的数组,返回新数组,原数组不会改变

【注】参数也可以为一个数组, 当参数为数组的时候,会先把数组中的元素单独拆出来再合并。

                    var arr=[10,20,30,40,50];

                     var arr1=arr.concat(60,70);

                     console.log(arr1);

                   结果为       [10,20,30,40,50,60,70];

slice()方法:数组.slice(start,end);    在数组中获取指定区域的元素[start,end)(start和end都为数组下标),提取出来生成新数组,并返回新数组。

                 var arr=[10,20,30,40,50];

                 var arr1=arr.slice(1,2);

                 console.log(arr1);

                 结果为 [20]

splice方法: 

1.增加

数组.splice(start,length,参数1,参数2,.....);  在数组中,从下标为start的元素开始,截取length长度的元素,组成新数组;然后在start位置开始,插入参数元素,返回新数组。

                       

                       var arr=[10,20,30,40,50];

                    var arr1=arr.splice(2,1,"hello");

                    console.log(arr);

                    console.log(arr1);

                  结果为 

                   [10,20,"hello",40,50]

                    [30]                       

2.删除

数组.splice(start,end);  在数组中, 删除下标在start和end之间的元素,形成新数组,

返回删除元素组成的数组。

                     

                       var arr=[10,20,30,40,50];

                    var arr1=arr.splice(1,2);

                    console.log(arr);

                    console.log(arr1);

                     结果为

                            [10,40,50]

                            [20,30]


3.修改(先删除,再增加)

数组.splice(start,length,参数)     在数组中,下标从start的元素开始,删掉长度length个元素,再从start位置开始添加参数。

【注】1和3是同一个方法,但是目的不一样,所以区分开,以便于以后使用。

                    var arr=[10,20,30,40,50];

                      arr.splice(2,1"hello");

                       console.log(arr);

                 结果为        [10,20,"hello",40,50]


join方法:数组.join(拼接符);         将数组中的元素,用传入的拼接符,拼接成一个字符串,返回拼接好的字符串。 一般我们用这个方法来把数组变为字符串。

                         var arr=[10,20,30,40,50];

                     var arr1=arr.join("==");

                      console.log(arr1);

                      结果为     10==20==30==40==50

reverse方法:数组.reverse();      将数组中的元素进行逆序操作,这个操作是根据下标进行的。

                    var arr=[10,20,30,40,50];

                    var arr1=arr.reverse();

                    console.log(arr1);

                     结果为      [50,40,30,20,10]

sort方法:数组.sort();    对数组进行排序。

【注】 这个方法其实是有问题的,如果数组中存在大于10的数,那么排序就不会完成,原因就是这个方法会先把数组中的数字转化为字符串,是按照字符串比大小的方式进行的,根据字符串比较规律,第一位可以比出大小,那么直接返回结果。

解决方法:  在调用sort方法的时候传入一个函数,具体看下列操作

        var arr=[1,10,20,15,25,5];

         arr.sort(function(num1,num2){

                    return num1-num2;

         })

          num1-num2为升序;num2-num1为降序。


以上就是平时数组所能用到的方法,写的再好,不如多练! 加油!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。