js 数组 / 数组内置方法

数组的定义:

1.数组:一组数    Array   引用类型   []
			2.数组定义:
				1) new Array()
				2)new Array(item,item,item...);   定义同时即初始化
				3)new Array(length)    定义指定长度的数组
				4[]   数组

			3.类型判断 instanceof
			4.数组赋值
				数组中每一个元素都有一个索引,从0开始
				数组名[索引]=;
			5.数组取值
				数组名[索引]
			6.数组遍历
				长度:length
				for
				for...in
			7.两个不限制  
				不限制长度
				不限制类型
			8.引用类型赋值,传递的是地址

注意

基本类型变量赋值,传递的是值
var a=10;
var b=a;
引用类型赋值,传递的是地址
var arr=[90,10];
var arr0=arr;

例如:

     var arr=new Array();//定义一个数组   空数组
     通过索引为数组赋值
	  arr[0]=100;
	  arr[1]=200;
    console.log(arr[1]);
	console.log(arr[0]);

数组遍历

第一种方法:for

    数组的遍历
       var  arr=[1,2,3,4,5];
		for(var i=0;i<arr.length;i++){
			console.log(arr[i]);
		}

举例:录入班级学生姓名,当遇到exit时,结束录入
1)输出班级所有学生的姓名

	var arr=new Array();
	var name;
		while((name=prompt('请输入学生姓名:'))!='exit'){
			arr[arr.length]=name;//将数据存入数组末尾	
		}

		//输出
		for(var j=0;j<arr.length;j++){
			console.log(arr[j]);
		}

第二种方法:for … in

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

举例:
将数组中第一个数据修改为100(不能修改原数组)

	var arr=[2,34,6];
		 var arr0=[];
		//遍历
		for(var i in arr){
			arr0[i]=arr[i];
	    }
		 arr0[0]=100;
		 console.log(arr0);
		 console.log(arr);
		//合并两个数组,不修改原数组

第三种方法:for … Each

	语法:array.forEach(function(item, index, arr), thisValue)
	
			item   数组元素
			index  索引
			arr    数组自身
			返回值:	undefined

知识点回顾:

      基本数据类型:number  string  boolean  undefined  null
		引用类型:  Object  Date  Function  Array  RegExp

		区别:
			基本数据类型的存储发生在栈内存中
			引用类型:存储分两块,在堆中存储数据,在栈中保存数据在堆中的内存地址
数组内置方法:
		数组内置方法:													是否修改原数组
			(1)栈方法(先进后出)											修改
				push(item....item)     在数组末尾添加元素
				pop		 删除数组末尾元素
			(2)队列方法(先进先出) 										修改
				push()                 在数组末尾追加元素
				shift()					删除数组第一个元素
			(3)数组操作方法
				concat(arr...)                数组合并                     返回新数组
				unshift(item...)          在数组头部插入元素           		修改
				slice(start,end)        截取数组  [start,end)   			未修改
				splice: 													修改
					splice(index,howmany)   	删除数组元素
					splice(index,howmany,item...)  先删除,再添加
			(4)排序方法													修改
				sort             排序(默认按照字符串排序)
				reverse          倒叙
			(5)其他方法
				join(sp)		 使用指定字符将数组元素拼接为字符串
			(6)新方法
				forEach(fn) 		遍历
					fn函数有三个参数
						item   数组元素
						index  索引
						arr    数组自身

				indexOf             查找元素在数组中的位置       	找不到  -1
				lastIndexOf 		从后向前查找数组中是否包含元素   找不到  -1
				some(fn)  			fn 有三个参数            	//判断数组中是否有满足规则的(有一个即可)
				every(fn)           fn 有三个参数  				// 判断数组中是否均满足规则的

				filter(fn)   

举例:
录入某班级学生的成绩,当遇到’exit’是结束录入
1)班级学生是否包含不及格(60分以下)的学员?
2)班级学生是否包含优秀(90分以上)的学员?若有,输出个数

function getData(){
			var arr=[];//成绩
			var score;//
			while((score=prompt('请输入成绩:'))!='exit'){
				arr.push(score);
			}
			return arr;
		}

		//录入数据
		var arr=getData();
		//遍历数组
		arr.forEach(function(item){
			console.log(item);
		});
		//判断优秀学员
		var count=0;//
		var isCos=arr.some(function(item){		
			return item>90;
		});

		if(isCos){
			//遍历
			arr.forEach(function(item){
				if(item>90) count++;
			});
			console.log('优秀学员有:'+count+'个');
		}else{
			console.log('没有优秀的');
		}

二维数组 、多维数组

只能用 for…in

	var arr=[23,23243,2,34];
	 //对象数组
	 var arr0=[[23,43],['李四',90],['王五',10],['Jack',199]];

	var arr=[
		['李四','二年级',20],
		['王五','一年级',23],
		['莉莉','二年级',19],
		['小花','二年级',21]
	];
	console.log(arr.length);//4
	//输出二年级年龄大于20岁的学生姓名
	arr.forEach(function (item) {
		if(item[1]=='二年级'&&item[2]>20){
			console.log(item[0]);
		}
	});

举例:
张三 20
李四 21
王五 22
小花 19
小兰 20

	var arr=[];
	arr['张三']=20;
	arr['李四']=21;
	arr['王五']=22;
	arr['小花']=19;
	arr['小兰']=20;
	
	// console.log(arr['小花']);
	for(var i in arr){
		console.log(i,arr[i]);
	}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值