学习笔记(五)JavaScript 数组

创建数组

  1. 创建字面量数组:var arr=[]
  var arr=[1,5,2,"a",5];
  1. 创建数组对象:var arr=new Array();

    • 参数仅有1个,且这个参数是正整数,则表示新建一个具备该正整数长度的空数组,里面有这个长度的若干空元素。

      var arr=new Array{10}; //则表示创建了10个空数组
      
    • 如果是负数或者小数时,则报错。

      var arr2=new Array(3.5);
      
    • 如果输入的不是数值,是其他类型时,这个数据就会作为该数组的第0个元素,长度为1

  2. 根据对象创建数组:var arr=new Object([])

    var arr2=new Array("a");console.log(arr2[0]);//返回a
    

数组下标

元素和下标

  1. 下标(索引):数组和对象一样都是引用数据类型数组中的数据按照顺序排列,从0开始,把这个叫做索引,也叫做下标。

  2. 元素:把数组中的每个数据叫做元素,或者简称元。

    ​ 访问元素使用中括号进行访问:数组名[下标]=元素;

    var arr=[2,"a",4,10];
    
    //访问数组元素2 
    console.log(arr[0]);//返回2
    //访问数组元素a
    console.log(arr[1]);//返回a
    

数组的属性

  1. length 设置或返回数组中元素的数目。

    var arr=[1,2,3,4,5]; 
    console.log(arr.length);//返回5
    
  2. length 修改数组长度

    如果设置为0,表示清空数组

    如果设置为3,表示保留到第三位

  3. 修改数组内容

    var arr=[1,2,3,4,5]; 
    arr[arr.length-1]=20;
    console.log(arr[4]);//返回20
    
  4. 添加元素

    var arr=[1,2,3,4,5]; 
    arr[arr.length]=4;
    console.log(arr);//返回[1,2,3,4,5,4]
    

遍历数组

  1. 常见于循环中对数组的遍历,比如:for(var i=0;i<arr.length;i++){执行部分}

    var arr = [5, 2, 7, , 4, 9, 6];
    for (var i = 0; i < arr.length; i++) {
        console.log(arr[i]);
        //返回[5, 2, 7, , 4, 9, 6];
    }
    

数组的方法

concat()
  1. 解释:数组的合并,合并后会返回一个新数组,原来的两个数组不会变化。

  2. 示例:

    //合并两个数组
    var arr=[1,2,3,4];
    var arr1=[5,6,7,8];
    var arr2=arr.concat(arr1);
    console.log(arr2); //返回数组arr2[1,2,3,4,5,6,7,8]
    
    //数组除了可以合并数组,也可以合并元素,将多个元素与原数组合并,返回新数组
    var arr3=arr.concat(0,-1,-2);
    console.log(arr3); //返回数组arr2[1,2,3,4,0,-1,-2]
    
    //既可以合并元素,也可以合并数组
    var arr4=arr.concat(0,arr1,["A","B"]);
    console.log(arr4); //返回数组arr4[1,2,3,4,0,5,6,7,8,"A","B"];
    
    //如果直接使用concat,就可以完成数组的复制功能
    var arr5=arr.concat();
    console.log(arr5===arr);//返回false
    
join()
  1. 解释:将数组的每个元素以指定的字符连接形成新字符串返回。

  2. 示例:

    var  arr=[1,2,3,4,5];
    
    //将数组合并为字符串返回,默认使用逗号连接
    var str=arr.join();
    console.log(str);//返回1,2,3,4,5
    
    //在这里join的参数是字符串的连接符
    var str=arr.join("|");
    console.log(str);//返回1|2|3|4|5
    
    ""作为连接符,会将数组元素首尾相连成为字符串
    var str=arr.join(""); 
    console.log(str);//返回1 2 3 4 5
    
  3. 重构:

    var  arr=[1,2,3,4,5];
    function joins(arr,connector){
        var str="";
        for(var i=0;i<arr.length;i++){
            if(i===0)str=arr[i];
            str+=(connector?connector:",")+arr[i];
        }
        return str;
    }
    var a=joins(arr,"|")
    console.log(a);
    
pop()
  1. 解释:删除并返回数组的最后一个元素

  2. 示例:

    var arr=[1,2,3,4,5];
    
    //在尾部删除数组:
    arr.pop();//pop中没有参数,删除数组的最尾部一个元素
    console.log(arr.pop());//删除并返回数组的新长度,返回4
    
    //在尾部删除数组:
    arr.pop(3);//pop中参数3,删除数组的最尾部3个元素
    console.log(arr.pop());//删除并返回数组的新长度,返回2
    
  3. arr.length和arr.pop():
    arr.length–;:等同 速度更快,但是不会返回数组长度
    arr.pop();:速度慢,但是会返回数组长度

  4. 重构:

    var  arr=[1,2,3,4,5];
    function pops(arr,quantity){
    	return arr.length=arr.length-(quantity?quantity:1);
    }
    var a=pops(arr,2)
    console.log(a);
    
shift()
  1. 解释:删除并返回数组的第一个元素

  2. 示例:

    var arr=[1,2,3,4,5];
    
    //在头部删除数组:
    arr.pop();//pop中没有参数,删除数组的最头部一个元素
    
    //返回数组的新长度:
    console.log(arr.pop());删除并返回数组的新长度,返回4
    var a=arr.pop();console.log(a);//删除并返回数组的新长度,返回4
    
  3. 重构:

    var  arr=[1,2,3,4,5];
    function shifts(arr,quantity){
        for (var i = 1; i <= quantity; i++) {
            var len=arr.length;
            for (var n = 0; n < len; n++) {
                arr[n] = arr[n + 1];
            }
    }
        arr.length = arr.length - quantity;
        return arr;
    
    }
    var a=shifts(arr,1)
    console.log(a);
    
push()
  1. 解释:向数组的末尾添加一个或更多元素,并返回新的长度。

  2. 示例:

    var arr=[1,2,3,4,5];
    
    //在数组的尾部插入新元素:
    arr.push("a","b");
    arr.push(6);
    arr.push(6,7,8);
    
    //返回数组的新长度:
    console.log(arr.push(6,7,8));//添加并返回8
    arr.push(6,7,8);console.log(arr);//返回新数组
    var a=arr.push(6,7,8);console.log(a);//添加并返回8
    
  3. 重构:

    var elemen=["a","ab","b"];
    var  arr=[1,2,3,4,5];
    function pushs(arr,element){
        var len=arr.length;
        for (var i = 0; i < element.length; i++) {
        	arr[len+i]=element[i];
    	}
    	return arr;
    }
    
    var a=pushs(arr,elemen)
    console.log(a);
    
unshift()
  1. 解释:向数组的开头添加一个或更多元素,并返回新的长度。

  2. 示例:

    var arr=[1,2,3,4,5];
    
    //在数组的头部插入新元素:
    arr.unshift(0);
    arr.unshift(-3,-2,-1,0);
    arr.unshift("a","b");
    
    //返回数组的新长度:
    console.log(arr.unshift(-3,-2,-1,0););//添加并返回9
    var a=arr.unshift(-3,-2,-1,0);console.log(a);//返回9
    arr.unshift(-3,-2,-1,0); console.log(arr);//添加并返回新数组
    
  3. 重构:

    var elemen=["a","ab","b"];
    var  arr=[1,2,3,4,5];
    function unshifts(arr,element){
        var len=arr.length+element.length;
        for(var i=len-1;i>=0;i--){
        	arr[i]=arr[i-element.length];
        }
        for(var n=0;n<element.length;n++){
        	arr[n]=element[n];
        }
        return arr;
    }
    var a=unshifts(arr,elemen)
    console.log(a);
    
slice()
  1. 解释:按指定位置截取复制数组的内容,返回被截取的内容,原数组不变。

  2. 示例:

    var arr=[1,2,3,4,,5,6,7];
    
    //从第1位开始截取到第4位之前
    var arr1=arr.slice(1,4);
    console.log(arr1);//[2, 3, 4]
    console.log(arr); //[1, 2, 3, 4, empty, 5, 6, 7]
     
    //第二个参数不写,默认截取到尾部
    var arr1=arr.slice(1,4);//[2, 3, 4, empty, 5, 6, 7]
    
    //第一个参数为0.第二个参数不写时,复制数组
    var arr2=arr.slice(0);//[1,2, 3, 4, empty, 5, 6, 7]
    
    //第一个参数为负.第二个参数不写时,倒数开始截取到尾部
    var arr2=arr.slice(-2);//[6, 7]
    
    //第一个参数为负.第二个参数为负,从倒数第三位到倒数第一位
    var arr2=arr.slice(-3,-1);//[5, 6]
    
splice()
  1. 解释:数组.splice(从什么位置开始,删除多少个元素,要插入的元素);
    这个方法可以从指定的位置删除给定数量的元素,并且在这个位置插入需要的元素,并且返回被删除的元素组成的新数组

  2. 示例:

    var arr=[1,2,3,4,5];
    
    //没有任何参数时,返回一个空数组
    var arr1=arr.splice();
    console.log(arr1);//[]
    console.log(arr);返回[1,2,3,4,5]
    //表示并未对arr做任何改变
    
    //第一个参数是0,表示从第0位开始,第二个参数删除多少个没有填,意味着删除到尾部
    var arr1=arr.splice(0);//将所有数据转移到新数组
    console.log(arr1);//返回[1,2,3,4,5]
    console.log(arr);//[]
    //把新数组的数值转给了arr1,表示删除arr所有数值
    
    //从第0位开始删除3个元素,返回到新数组arr1
    var arr1=arr.splice(0,3);
    console.log(arr1);//[1, 2, 3]
    console.log(arr);//[4, 5]
    
    //从第几位开始可以是负数,从后向前数(倒数),删除3个元素
    var arr1=arr.splice(-23);
    console.log(arr1);//[4, 5]
    console.log(arr);//[1, 2, 3]
    
    //从数组的第0位开始,删除1个元素,并且在这个位置插入一个元素 -1,替换
    var arr1=arr.splice(0,1,-1);
    console.log(arr1);//[1]
    console.log(arr);//[-1, 2, 3, 4, 5]
    
    //数组的最后一位替换位0
    var arr1=arr.splice(-1,1,0);
    console.log(arr1);//[5]
    console.log(arr);//[1, 2, 3, 4, 0]
    
    //将数组中第二位开始两位元素替换为10,11
    var arr1=arr.splice(2,2,10,11);
    console.log(arr1);//[3, 4]
    console.log(arr);//[1, 2, 10, 11, 5]
    
    //在数组的第二位插入一个元素-1
    var arr1=arr.splice(2,0,-1);
    console.log(arr1);//[]
    console.log(arr);//[1, 2, -1, 3, 4, 5]
    
indexOf
  1. 解释:数组.indexOf(要查询得元素,从什么位置(下标)开始查询) 返回查询到的下标
    如果没找到,则会返回一个-1

  2. 示例:

    //在数组中查找元素4,如果查找到,返回该元素所在的下标,如果没有查找到,则返回-1
        var arr=[1,2,3,4,5,6];
        var index=arr.indexOf(4);
        console.log(index);
    
    //无法查找到数组里面属性为对象的值
    	错误示例:
        var arr=[
            {a:1},
            {a:2},
            {a:3},
            {a:4}
        ];
        var index=arr.indexOf({a:1});
        console.log(index);//这是错误得,查找不到,引用地址不同,查找的是新对象
    
  3. 重构:

    var  arr=[4,2,3,4,5];
    function indexOfs(arr,elem,sub){
    	var len=arr.length;
        for(var i=(sub?sub:0);i<len;i++){
        	if(arr[i]===elem) return i;
        }
    }			
    var a=indexOfs(arr,4,2)
    console.log(a);
    
lastIndexOf
  1. 解释:数组.lastIndexOf(要查询得元素,从什么位置(下标)开始查询) 从后向前查找,返回查询到的下标

  2. 示例:

    var arr=[1,3,1,2,3,5,2,3,4,6];
    var index=arr.lastIndexOf(3);
    console.log(index);//返回7
    
  3. 重构:

    var  arr=[4,2,3,4,5];
    function lastIndexOfs(arr,elem,sub){
        var len=arr.length;
        for(var i=(sub?sub:0);i>=0;i--){
        	if(arr[i]===elem) return i;
        }
    }			
    var a=lastIndexOfs(arr,4,2)
    console.log(a);
    
foreach
  1. 解释:数组遍历

    • 数组.forEach(function(数组中的元素,每个元素对应的下标,数组自身{执行语句;})
    • 没有返回值
  2. 示例:

    //遍历
    var arr=[2,4,6,,8,3,2];
    var arr1=[];
    arr.forEach(function(item,index){
        arr1[index]=item;
    })
    console.log(arr1);
    //返回:(7) [2, 4, 6, empty, 8, 3, 2]
    
    
    //会跳过空元素,如果不跳过可以使用arr1[index]:
    var arr1=arr.forEach(function(item,index,arr){
    	arr1[index]=item;
    });
    
map
  1. 解释:数组遍历

    • 数组.map(function(数组中的元素,每个元素对应的下标,数组自身{执行语句;})
    • 会返回一个与原数组长度相等的新数组,没有return时,返回的全是undefined,且数组长度和原数组长度相等。有return时,利用筛选条件,也会返回给新数组和旧数组一样的长度数组,其中不符合项,将有undefined代替。
  2. 示例:

    var arr=[1,3,5,7,2,4,6,8];
    
    var arr1=arr.map(function(item){
        if(item>4){
        	return item;
        }
    });
    console.log(arr1); 
    //返回(8) [undefined, undefined, 5, 7, undefined, undefined, 6, 8]
    
sort()
  1. 解释:对数组的元素进行排序

    • 数组.sort(function(后一项,前一项){执行语句;})
      • 当return 后一项 - 前一项 时,则从小到大排序
      • 当return 前一项 - 后一项 时,则从大到小排序
  2. 示例:

    var arr=[1,3,5,7,2,4,6,8];
    
    var arr1=arr.sort(function(a,b){
    	return a-b;
    });
    console.log(arr1); 
    //返回(8) [1,2, 3, 4, 5, 6,7, 8]
    
  3. 重构:

    //从小到大排序
    var  arr=[4,2,3,4,5];
    function sorts(arr){
        for(var i=0;i<arr.length-1;i++){
            for(var n=0;n<arr.length-1;n++){
                if(arr[n]>arr[n+1]){
                    var item=arr[n];
                    arr[n]=arr[n+1];
                    arr[n+1]=item;
                }
            }
        }
        return arr;
    }			
    console.log(sorts(arr));
    
    //从大到小排序
    var  arr=[4,2,3,4,5];
    function sorts(arr){
        for(var i=0;i<arr.length-1;i++){
            for(var n=0;n<arr.length-1;n++){
                if(arr[n]<arr[n+1]){
                    var item=arr[n];
                    arr[n]=arr[n+1];
                    arr[n+1]=item;
                }
            }
        }
        return arr;
    }			
    console.log(sorts(arr));
    
some()
  1. 解释:对数组的每个元素判断是否满足条件,如果都不满足就返回false,如果有一个满足的就返回满足条件的元素,并且不再判断后面的内容.

    • 数组.some(function(数组中的元素,每个元素对应的下标,数组自身{执行语句;})
  2. 示例:

    var arr=[1,3,5,7,2,4,6,8];
    var bool=arr.some(function(item,index,arr){
    	return item>5;
    });
    console.log(bool);//返回4 2
    
  3. 重构:

    var  arr=[4,2,3,4,8,1,5];
    function somes(arr,fn){
        for(var i=0;i<arr.length;i++){
            var bool=fn(arr[i],i,arr);
            if(bool) return arr[i];
        }
    }
    function fn(item,index,arr){
    	return item>5;
    }
    console.log(somes(arr,fn));
    
every()
  1. 解释:对数组的每个元素判断是否满足条件,如果有一个不满足条件就返回为false,全部满足时返回true

    • 数组.every(function(数组中的元素,每个元素对应的下标,数组自身{执行语句;})
  2. 示例:

    var arr=[1,3,5,7,2,4,6,8];
    var bool=arr.every(function(item,index,arr){
    return item>2;
    });
    console.log(bool); //true
    
  3. 重构:

    var  arr=[4,2,3,4,8,3,5];
    function everys(arr,fn){
        for(var i=0;i<arr.length;i++){
        	if(!fn(arr[i],i,arr)) return false;
        }
        return true;
    }
    function fn(item,index,arr){
    	return item>3;
    }
    console.log(everys(arr,fn));
    
reduce()
  1. 解释:方法对累计器和数组中的每个元素(从左到右)应用一个函数,将其简化为单个值。

    • 数组.reduce(回调函数(累积值,元素,下标,数组){执行语句},初始值);

      • 如果reduce没有设置初始值,累计值是数组的第0位元素,遍历从下标1开始

        //如果不加return value,则只在下标1累计下标0的元素
            var arr=[5,3,4,7,3,5,8,9];
            arr.reduce(function(value,item,index,arr){
            console.log(value,item,index,arr);    
            });//	5 3 1 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    undefined 4 2 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    undefined 7 3 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    undefined 3 4 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    undefined 5 5 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    undefined 8 6 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    undefined 9 7 (8) [5, 3, 4, 7, 3, 5, 8, 9]
            
        //如果加return value,则在1开始的下标接收下标0的元素
            var arr=[5,3,4,7,3,5,8,9];
            arr.reduce(function(value,item,index,arr){
            console.log(value,item,index,arr); 
            return value;
            });//	5 3 1 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    5 4 2 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    5 7 3 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    5 3 4 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    5 5 5 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    5 8 6 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    5 9 7 (8) [5, 3, 4, 7, 3, 5, 8, 9]
        	
        //如果加return value+1,则在1开始的下标接收并每行累计下标0+1的元素
        	var arr=[5,3,4,7,3,5,8,9];
            arr.reduce(function(value,item,index,arr){
            return value;
            });//	6 3 1 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    7 4 2 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    8 7 3 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    9 3 4 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    10 5 5 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    11 8 6 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    12 9 7 (8) [5, 3, 4, 7, 3, 5, 8, 9]	
        	
        //如果加return value+item,则在1开始的下标接收累加上一行的item值,但最后一行没累计在内
        	var arr=[5,3,4,7,3,5,8,9];
            arr.reduce(function(value,item,index,arr){
            return value+item;
            });//	8 3 1 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    12 4 2 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    19 7 3 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    22 3 4 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    27 5 5 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    35 8 6 (8) [5, 3, 4, 7, 3, 5, 8, 9]
                    44 9 7 (8) [5, 3, 4, 7, 3, 5, 8, 9]	
        
      • 如果reduce有设置初始值,累计值是初始值,遍历从下标0开始

        var arr=[5,3,4,7,3,5,8,9];
        var arr1=arr.reduce(function(value,item,index,arr){         
        return value+1;        //value为1,每行+1进行累加 
        },1);
        console.log(arr1);//8
        
        var arr=[5,3,4,7,3,5,8,9];
        var arr1=arr.reduce(function(value,item,index,arr){         
        return value+item;     //   value为0,每行+上一行的item进行累加    
        },0);
        console.log(arr1);//8
        
  2. 重构:

    var  arr=[4,2,3,4,8,3,5];
    function reduces(arr,fn,initValue){
        var i=0;
        if(initValue===undefined){
            initValue=arr[0];
            i=1;
        }
        while(i<arr.length){
            initValue=fn(initValue,arr[i],i,arr);
            i++;
        }
        return initValue;
    } 
    var sum=reduces(arr,function(value,item,index,arr){
            return value+item;
    }) 
    
filter()
  1. 解释:方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

    • 数组.filter(function(数组中的元素,每个元素对应的下标,数组自身{执行语句;})
    • 不会对空数组进行检测。
    • 不会改变原始数组。
    • 和map的区别在于map会返回一个与原数组长度相同的新数组,意在不会跳空,而filter则会跳空,返回一个由符合条件的元素组成的新数组。
  2. 示例:

    var arr=[1,3,4,7,3,5,8,9];
    var arr1=arr.filter(function(item,index,arr){
    	return item>5;
    });
    
    console.log(arr1);//[7, 8, 9]
    

判断数组

Array.isArray()
  1. 解释:判断元素是否是数组,如果是数组返回true否则返回false

  2. 示例:

    var arr=[1,2,3,4];
    var obj={a:1};
    console.log(Array.isArray(arr));//true
    console.log(Array.isArray(obj));//false
    
toString()
  1. 解释:可以将数组转换为任意进制字符串,但是对象数组不可以转换

  2. 示例:

    var arr=[1,2,3,4];
    var obj={a:1};
    console.log(arr.toString());//1,2,3,4
    console.log(obj.toString());//[object Object]
    
constructor
  1. 解释:属性返回对象的构造函数。

  2. 示例:

    var arr=[1,2,3,4];
    var obj={a:1};
    console.log(arr.constructor===Array);//true
    console.log(arr.constructor===Object);//false
    

对象与数组

关系
  1. 数组实际上就是来源对象,脱胎于对象,继承于对象。
区别
对象属性名和数组的下标
  1. 对象属性名:obj的属性名是字符,在对象中属性名填入任何内容都会隐式转换为字符。
  2. 数组的下标:数组的下标是数字
    • 在数组中所有的下标都会隐式转换为number
    • 如果不能转换为number的(也就是转换后是NaN的),就会默认添加对象的属性名,但数组的长度,仅记录下标的个数,不包含属性数量,数组不可以使用点语法获取下标变量,但是可以使用点语法取属性。
访问元素
  1. 对象:可以用点语法和中括号
  2. 数组:只能用中括号
遍历方式
  1. 对象:for in 遍历 (浅复制)

    • 可以遍历数组,但是遍历不出空元素,数组遍历时,以元素确认
    var obj={a:1,b:2,c:3};
    for (var prop in obj) {
          console.log(prop, obj[prop]);
          //返回:a,1 b,2 c,3
    }
    
  2. 数组:for 遍历 (浅复制)

    • for循环是根据下标的数字从0开始循环到最大下标,有序
    • for遍历只能遍历数组,以数字下标为顺序遍历
    • 可以遍历空元素
    var arr = [5, 2, 7, , 4, 9, 6];
    for (var i = 0; i < arr.length; i++) {
        console.log(arr[i]);
        //返回[5, 2, 7, , 4, 9, 6];
    }
    

二维数组

var arr = [];
for (var i = 0; i < 10; i++) {
    // i是外层数组的下标
    arr[i] = [];
    for (var j = 0; j < 10; j++) {
        // j是内层数组的下标
        // arr[i]就是内层的数组
        // arr[i][j]就是内层数组的第几个下标变量
        // arr[i][j]=i*10+j;
        arr[i][j] = i * 10 + j;
    }
}
        返回:
        10) [Array(10), Array(10), Array(10), Array(10), Array(10), Array(10), Array(10), Array(10), Array(10), Array(10)]
        0: (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
        1: (10) [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
        2: (10) [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
        3: (10) [30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
        4: (10) [40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
        5: (10) [50, 51, 52, 53, 54, 55, 56, 57, 58, 59]
        6: (10) [60, 61, 62, 63, 64, 65, 66, 67, 68, 69]
        7: (10) [70, 71, 72, 73, 74, 75, 76, 77, 78, 79]
        8: (10) [80, 81, 82, 83, 84, 85, 86, 87, 88, 89]
        9: (10) [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
        length: 10
        __proto__: Array(0)

对象型数组

var arr=[
	{a:1},
	{b:2},
	{c:3}
]
//遍历
for(var i=0;i<arr.length;i++){
	for(var prpo in arr[i]){
		console.log(i,prpo,arr[i][prpo]);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值