• js 数组


    js中的数组类似与java中的容器 类型可以不同、长度可变

    一、数组的声明

         var arr1=new Array();//数组的声明一
         var arr2=[1,2,3,true,new Date()];//数组的声明二      

    二、数组的操作    

       var arr3=arr2.pop();//移除数组的最后一个元素,返回移除的元素
       var arr4=arr2.push(12,23);//向数组中添加元素,返回新数组的长度
       var arr5=arr2.shift();//移除数组的头部一个元素,返回移除的元素
       var arr6=arr2.unshift(false,"qq");//从头部向数组中添加元素,返回新数组的长度
       var arr7=arr2.splice(1,2);//截取新数组(第一个参数起始位置,第二个参数截取个数,第三个参数:追加新元素的个数)
       var arr8=arr2.slice(2,4);//截取范围 返回截取的内容 操作的不是数组本身

           var arr9=[12,13,3,34];
           var arr10=[14,15];
       var result1=arr9.concat(arr10);//合并两个数组 返回一个新数组
       var result2=arr9.join("-");//在元素之间加入内容 返回一个字符串
       arr9.sort();//排序 正序 把元素当作字符串    操作数组本身
       arr9.reverse();//排序倒序 按照数组的顺序 倒序   操作数组本身

         正常的排序:

    window.onload=function(){
            var arr3=[10,3,7,9,34];
            arr3.sort();
            console.info(arr3);//[10, 3, 34, 7, 9]
            arr3.sort(compare);//使用 自定义的函数 compare
            console.info(arr3);//[3, 7, 9, 10, 34]
        }
        function compare(value1,value2){
            if(value1<value2){
                return -1;
            }else if(value1>value2) {
                return 1;
            }else{
                return 0;
            } 
        }

    三、 ECMN5新特性

         1、下标的方法
               var aa=[1,2,3,4,5];
         var index1=aa.indexOf(1);  //0       返回元素在数组的位置
               var index2=aa.indexOf(2,4);//3      从第几(2)个位置查某个(4)元素的位置
               var index3=aa.lastIndexOf(2);//从数组尾部查找元素的位置
         2、 迭代数组的方法

    window.onload=function(){
            var aa=[1,2,3,4,5];
            //对于数组的每一个元素用一个函数运行,如果都返回true,结果返回true
          var verey=aa.every(function(item,index,array){
            return item>0;
           });
             console.info(verey);//true;
    
            //对于数组的每一个元素用一个函数运行,返回过滤后的结果
            var filter=aa.filter(function(item,index,array){ 
              return item > 2; 
            }); 
            console.info(filter);//[3,4,5]
    
            //循环数组的每一个元素(for循环) 
            aa.forEach(function(item,index,array){ 
                alert(item);//打印每个元素
            }); 
    
            //对于数组的每一个元素用一个函数运行可以经过函数执行后,把新的结果返回
            var map=aa.map(function(item,index,array){ 
                return item*2;  
            }); 
            console.info(map);//[2,4,6,8,10] 
    
            //对于数组的每一个元素用一个函数运行,如果有一项返回true,结果返回true
            var some=aa.some(function(item,index,array){  
                return item>3; 
            });
            console.info(some);//true;
    
            //pre 前一个值 cur当前值 index索引位置 array数组(左边开始)
            var reduce=aa.reduce(function(prev,cur,index,array){  
                return prev+cur;  
            }); 
            console.info(reduce);//15 
    
            //pre 前一个值  cur当前值 index索引位置 array数组(右边开始)
            var reduceRight=aa.reduceRight(function(prev,cur,index,array){
                return prev+cur;    
            });
            console.info(reduceRight);//15 
        }

    四、常用方法————————Util

           <!-- ———————移除指定元素 str是要删除的元素 ————————————-->
            Array.prototype.moveElement=function(str){
                if(this.length===0){
                    throw new Error("数组空");
                }
                for(var index=0,len=this.length;index<len;index++){
                    if(this[index]===str){
                    if(isNaN(index)||index>this.length){
                        return false;
                    }
                    for(var i=0,n=0;i<this.length;i++){
                      if(this[i]!=this[index]){
                        this[n++]=this[i]
                      }
                     }
                    this.length-=1;
                    return;
                    }
                }
            }
        window.onload=function(){
            //去除数组中的重复项
           var arr=[1,3,2,2,4,5,6,6,7,8,9];
           alert(uniq(arr));
        }
        //把数组转为对象
        var arrToObj=function(arr){
            var obj={};
            for(var i=0;i<arr.length;i++){
                obj[arr[i]]=i;
            }
            return obj;
        }
        //把对象转为数组
        var objToArr=function(obj){
            var arr=[];
            for(var attr in obj){
                if(obj.hasOwnProperty(attr)){
                    arr.push(attr);
                }
            }
            return arr;
        }
        //去掉数组中的重复项
        function uniq(arr){
           return objToArr(arrToObj(arr));
        }

     

  • 相关阅读:
    Dropdown 下拉菜单
    Breadcrumb 面包屑
    Tabs 标签页
    NavMenu 导航菜单
    Notification 通知
    MessageBox 弹框
    Message 消息提示
    Loading 加载
    Alert 警告
    Badge 标记
  • 原文地址:https://www.cnblogs.com/jalja/p/4385485.html
Copyright © 2020-2023  润新知