js:数组(创建遍历函数)

Posted Dream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js:数组(创建遍历函数)相关的知识,希望对你有一定的参考价值。

1、数组

采用单个变量只能存储一个数据,数组能够存储多个数据,获取方式也比较简单。它是将一组数据存储在当个变量下的存储方式。

 

2、数组的创建

(1)new方式创建,不指定数组长度

        <script>
           var arr=new Array();
           arr[0]=123;
           arr[1]=true;
           arr[2]=\'a\';
           for(var i=0;i<arr.length;i++){
               console.log(arr[i]);
               console.log(typeof arr[i]);
               console.log(\'---------\');
           }
        </script>

 

 

 (2)new方式创建数组并指定数组长度:

        <script>
           var arr=new Array(3);
           arr[0]=123;
           arr[1]=true;
           arr[2]=\'a\';
           for(var i=0;i<arr.length;i++){
               console.log(arr[i]);
               console.log(typeof arr[i]);
               console.log(\'---------\');
           }
        </script>

 

 

(3)创建数组的时候直接实例化数组

        <script>
           var arr=new Array(\'a\',true,123);
           for(var i=0;i<arr.length;i++){
               console.log(arr[i]);
           }
        </script>

(4)字面量方式创建数组

       <script>
           var arr=[\'a\',\'b\',\'c\',true,123];
            for(var i=0;i<arr.length;i++){
               console.log(arr[i]);
           }
        </script>

 

 

 

3、数组的扩容

(1)修改长度

       <script>
           var arr=new Array(\'a\',true,123);
           arr.length=9;
           for(var i=0;i<arr.length;i++){
               console.log(arr[i]);
           }
        </script>

 

 

 (2)追加元素

       <script>
           var arr=new Array(\'a\',true,123);
           arr[3]=\'1\';
           arr[4]=\'abc\';
           for(var i=0;i<arr.length;i++){
               console.log(arr[i]);
           }
        </script>

 

 

 

3、数组的遍历

(1)for循环遍历方式

        <script>
           var arr=new Array(\'a\',true,123,\'a\',\'qq\');
           for(var i=0;i<arr.length;i++){
               console.log(i+\':\'+arr[i]);              
           }
        </script>

 

 

for循环遍历的优化:

       <script>
           var arr=new Array(\'a\',true,123,\'a\',\'qq\');
           var l=arr.length;
           for(var i=0;i<l;i++){
               console.log(i+\':\'+arr[i]);              
           }
        </script>

 避免了反复获取数组的长度造成程序的性能减低

(2)for ... ...in(效率低)

                <script>
           var arr=new Array(\'a\',true,123,\'a\',\'qq\');
           for(var i in arr){
               console.log(i+\':\'+arr[i]);              
           }
        </script>

 (3)for... ...of

   <script>
           var arr=new Array(\'a\',true,123,\'a\',\'qq\');
           var l=arr.length;
           for(var i  of arr){
               console.log(i+\':\'+arr[i]);              
           }
   </script>

 for.. ..in的输出的参数是索引,for... ...of直接輸出的是對應索引的内容,性能好于for... ...in,但是不能处理对象

(4)forEach

      <script>
           var arr=new Array(\'a\',true,123,\'a\',\'qq\');
           var l=arr.length;
           arr.forEach( function(item,index){
            console.log(index+\':\'+item)
            } )
        </script>

 性能比for循环要弱

 

4、相关函数

(1)concat:连接两个数组

      <script>
           var arr1=new Array(\'a\',true,123,\'a\',\'qq\');
           var arr2=new Array(\'1\',\'2\');
           var arr3=arr1.concat(arr2);
           arr3.forEach( function(item,index){
            console.log(index+\':\'+item)
            } )
        </script>

 (2)join() 把数组中的所有元素放入一个字符串,元素通过指定的分隔符进行分隔

        <script>
           var arr1=new Array(\'a\',true,123,\'a\',\'qq\');
           console.log(arr1.join("-"));
        </script>

 (3)排序

数字型数据:

       <script>
            var arr=new Array(12,23,3,4,5,6,567);
           console.log(arr.sort());
        </script>

 字符串型:

         <script>
           var arr=new Array(\'a\',\'c\',\'d\',\'t\',\'b\');
           console.log(arr.sort());
        </script>

 sort函数是按照字母顺序(ascII)进行排序的

要想实现对数字的排序,需要添加一个函数:

       <script>
            function sortNumber(a,b)
            {
            return a - b
            }
           var arr=new Array(12,1,5343,2,123);
           console.log(arr.sort(sortNumber));
        </script>

 (4)其他函数

  • splice:删除元素并添加新元素
  • toString:将数组转换为字符串并返回
  • valueOf:返回数组的原始值
  • unshift:向数组的开头添加一个或更多元素,并返回新的长度
  • push:向数组的末尾添加一个或更多元素,并返回新的长度。等... ...

 

总结:

与c和java的数组不同,js中在同一个数组中允许有多种数据类型的数据存在

 

以上是关于js:数组(创建遍历函数)的主要内容,如果未能解决你的问题,请参考以下文章

几个关于js数组方法reduce的经典片段

js简洁代码片段

JS基础_数组的遍历

web代码片段

js查找数组中出现次数最多的元素

thinkphp 如何想模板的JS代码中传递数组?