数组Array基础知识

数组

数组的概念

  • 数组是值的有序集合
  • 数组中的每个值 称之为 元素
  • 每个元素可以是任意数据类型的值
  • 每个元素都有索引(下标)
  • 元素的索引从0开始,按照顺序递增。 元素最大的索引 2^32-2

创建数组

  • 直接量 []

      var arr=[];
      var arr=["string",234,true,function(){},demo,demo(),brr[]];
      数组的元素可以是任意类型
    
  • 构造函方式 new Array() 也可以省略new

       var arr=new Array();
      var arr=new Array(5);长度为5;
      var arr=new Array(1,3,"hello"); 直接传参
    

读写数组中的元素

  • 数组名[索引]

稀疏数组

  • js数组的索引是连续的
  • 没有连续的给元素赋值 , 没有赋值的元素会自动赋值 undefined

添加和删除 数组的元素

  • 添加数组元素

    • 指定索引来添加元素
    • 把数组长度当做新元素的索引 arr[arr.length] = value
    • 在数组的最后添加元素 push() arr.push()
    • 在数组的前面添加元素 unshift() arr.unshift()
    • 在数数组的任意位置添加元素 splice(index, 0, value)
  • 删除数组的元素

    • 改变数组的length属性 arr.length -= 1; arr.length -= 2
    • 删除最后面的一个元素 pop()
    • 删除数组的第一个元素 shift()
    • 删除指定位置的指定个数的元素 splice(index, length)
    • delete arr[2];删除元素(位置还在),使其变成undefined;

数组遍历

  • for 循环

  • for in

      for(var i in arr){
      	console.log(arr[i]);
      }
    

多维数组

数组的方法

  • join([间隔符号]) 把数组的每个元素拼接成一个字符串 返回字符串
  • slice(start, end) 截取数组中的一部分, 返回一个新数组
  • concat(arr, arr....) 合并数组. 返回一个新数组
  • toString() 把数组转换为字符串
  • reverse() 翻转数组 副作用
  • sort() 排序 副作用
  • push() pop() 副作用
  • shift() unshift() 副作用

类数组对象

  • arguments

  • Elementcollection 元素的集合

       document.getELementsByTagName()
       element.getElementsByTagName()
    

作为数组的字符串

  • 字符串具有部分数组特性
  • 字符串也有length属性 获取字符串的长度
  • 也可以通过[索引值] 取出字符串中的一个字符

稀疏数组变为不稀疏

法一:
<script>
	function xiShu(a){
		var brr=[];
		console.log(arr);
		for(var i=0;i<arr.length;i++){
			if(arr[i]!=undefined){
				brr[brr.length]=arr[i];	
			}
		}
		console.log(brr);
	}
		xiShu(arr=[0,1,2, ,4,5, , ,8]);
</script>

法二:

<script>
	console.log("");
	function xiShu(a){	
		console.log(arr);
		for(var i=0;i<arr.length;i++){
			if(arr[i]==undefined){
				// brr[brr.length]=arr[i];	
				arr.splice(i,1);
				i--;
			}
		}
		console.log(arr);
	}
	xiShu(arr=[0,1,2, ,4,5, , , ,8]);
</script>

数组去重

	<script>
	function quChong(arr){
		var arr;		
		for(var i=0;i<arr.length;i++){
			for(var j=i+1;j<arr.length;j++){
				if(arr[i]==arr[j]){
					console.log("重复的数:"+arr[j]+ "它的位置:"+j);
					i--;
					//删除重复的数
					arr.splice(j,1);			
					//输出删除重复的数之后的数组
					// console.log(brr);
				}				
			}
		}
		console.log(arr);
	}
	quChong(arr=[1,1,3,5,6,43,45,6,"nihao","pwl",7,6,7,45,45,45,"lw"]);
</script>
posted @ 2017-08-20 20:04  在水伊人  阅读(322)  评论(0)    收藏  举报