web前端学习笔记18-js对象原型3(Array对象-数组及数组相关函数)

一、Array对象原型

数组就是一组数据,js中没有数组这种数据类型,数组是对象创建的。
下标 / 键】用于区分数组中不同数值的标志就是下标
】数组中每一个数据就是值
键值对 / 元素】键+值就是键值对
索引数组】以数字作为下标的数组
关联数组】以字符串作为下标的数组
js中只有索引数组,且索引值只能为从0开始的正向数,没有关联数组

var ar=['张三','李四','王五','小六'];
console.log(ar[2]);  //下标不能为负数

二、数组的操作

// 数组的操作————————————————————————
// 创建数组
// 方法一:使用对象原型实例化一个数组
// 1. 空数组
var ar2=new Array();
console.log(ar2,typeof ar2);
// 2. 创建具有数据的数组
var ar3=new Array('张三','李四','王五','小六');
console.log(ar3,typeof ar3);
// 3. 创建指定长度的数组
var ar4=new Array(8);  //指定长度为8,但没有数据
console.log(ar4,typeof ar4);
// 方法二:数组字面量(数组专用格式)
// 1. 空数组
var ar5=[];
console.log(ar5,typeof ar5);
// 2. 创建具有数据的数组
var ar6=['张三','李四','王五','小六'];
console.log(ar6,typeof ar6);
// 3. 创建指定长度的数组(不推荐)
var ar7=[,,,,,,,,];  //指定长度为8使用8个逗号
console.log(ar7,typeof ar7);

// 数组的增删改使用和遍历
var ar8=['张三','李四','王五','小六'];
console.log(ar8,typeof ar8);
// 1. 访问数组中的元素
console.log(ar8[0],ar8[2]);
// 2. 添加数组元素
ar8[4]='胖七';
ar8[5]='赵八';
// ar8[8]='二二';  //可以跳跃添加,但中间会自动添加空数据
console.log(ar8);
// 3. 修改数组元素
ar8[3]='孙六';
console.log(ar8);
// 4. 删除数组元素
delete ar8[2];  //delete只能删除值不能删除键,被删除数值变为empty
console.log(ar8);
// 5. 遍历数组
var ar9=['张三','李四','王五','小六'];
for (var i=0;i<ar9.length;i++){
	console.log(i,ar9[i]);
}

三、二维数组与多维数组

// 二维数组与多维数组
// 一维数组:数组中所有数据都不是数组
var one=['张三','李四','王五','小六'];
// 二维数组:一维数组中的内容包含一维数组
var two=[
	['张三','男',18,182],
	['李四','女',17,159],
	['王五','男',17,177],
	['小六','女',19,164]
];
console.log(two);
console.log(two[1]);
console.log(two[2][1]);
// 多维数组
var three=[
	['张三','男',18,182,[2017,172502]],
	['李四','女',17,159,[2017,172511]],
	['王五','男',17,177,[2017,172526]],
	['小六','女',19,164,[2017,172537]]
];
console.log(three[3]);
console.log(three[3][4][1]);

数组相关函数

关键字释义
concat();连接原数组和新的元素
join();使用指定字符将数组中所有元素连接成一个字符串
pop();在数组结尾处弹出一个元素(删除最后一个元素,直接改变原有数组)
push();在数组结尾处添加元素(直接改变原有数组)
shift();在数组开头移除一个元素(直接改变原有数组)
unshift();在数组开头添加元素(直接改变原有数组)
reverse();数组倒转(直接改变原有数组)
sort();数组排序
slice();切割数组,并且返回其中的一段
splice();数组万能操作方法(直接改变原有数组)

【 concat(); 】

// 1. concat();  连接数组元素(连接原数组和新的元素)————————————————————
var ar10=['张三','李四','王五','小六'];
var res10=ar10.concat('孙七','赵八');
// var res10=ar10.concat(['孙七','赵八']);  //此写法结果一样
console.log(res10);
// js数组不能采用相加的方式连接数组,相加的结果是字符串
var ar101=['张三','李四','王五','小六'];
var ar102=['孙七','赵八'];
console.log(ar101+ar102);

【 join(); 】

// 2. join() 使用指定字符将数组中所有元素连接成一个字符串
var ar11=['张三','李四','王五','小六'];
var res11=ar11.join('♥');
console.log(res11);

【 pop(); 】

// 3. pop() 在数组结尾处弹出一个元素(删除最后一个元素,直接改变原有数组)
var ar12=['张三','李四','王五','小六'];
ar12.pop();
console.log(ar12);

【 push(); 】

// 4. push() 在数组结尾处添加元素(直接改变原有数组)
var ar13=['张三','李四','王五'];
ar13.push('小六','孙七');
console.log(ar13);

【 shift(); 】

// 5. shift() 在数组开头移除一个元素(直接改变原有数组)
var ar14=['张三','李四','王五','小六'];
ar14.shift();
console.log(ar14);

【 unshift(); 】

// 6. unshift() 在数组开头添加元素(直接改变原有数组)
var ar15=['张三','李四','王五','小六'];
ar15.unshift('小丽','小娜');
console.log(ar15);

【 reverse(); 】

// 7. reverse() 数组倒转(直接改变原有数组)
var ar16=['张三','李四','王五','小六'];
ar16.reverse();
console.log(ar16);

【 sort(); 】

// 8. sort() 数组排序
var ar17=[5,16,2,7,161,26,33,21,19,13,6,32,24,29,14];
// 方法1:按照ASCII码排序
/*
	字符    ASCII码
	0-9     48-57
	A-Z     65-90
	a-z     97-122
*/
ar17.sort();
console.log(ar17);
// 方法2:按照数字排序:需定义数字排序规则,如下:
/*
	原理是冒泡排序,降序只需将大于和小于的返回值互换
	function shengxu(a,b){
		// 返回值1,0,-1
		if(a>b){
			return 1;
		}else if(a==b){
			return 0;
		}else{
			return -1;
		}
	}
*/
  // 固定格式。参数2个,返回值为正数,0,负数
function sheng(a,b){
	// 返回值1,0,-1
	if(a>b){
		return 1;
	}else if(a==b){
		return 0;
	}else{
		return -1;
	}
}
ar17.sort(sheng);
console.log(ar17);

【 slice(); 】

// 9. slice() 切割数组,并且返回其中的一段
// 编号     0      1      2      3     4     5
var ar18=['张三','李四','王五','小六','孙七','赵八'];
// 反向编号 -6     -5     -4     -3    -2     -1

// 1. 从开始位置到结束位置之前,即不包含结束位置
var res18=ar18.slice(1,4);
console.log(res18);
// 2. 从开始位置截取到最后
var res18=ar18.slice(1);
console.log(res18);
// 3. 可以给负参数,表示从后向前数,仍为从开始位置到结束位置之前
var res18=ar18.slice(1,-2);
console.log(res18);

【 splice(); 】

// 10. splice() 数组万能操作方法(直接改变原有数组)
// splice(指定位置,删除几个元素,添加的元素,添加的元素,添加的元素....)
// 编号     0      1      2     3      4      5
var ar19=['张三','李四','王五','小六','孙七','赵八'];
// 1. 向数组中添加元素:将在指定位置之前加
ar19.splice(3,0,'小娜','小丽');  //在王五和小六之间添加小娜,小丽
console.log(ar19);
// 2. 删除元素:从指定位置开始删除指定个元素
ar19.splice(1,2);  //删除李四,王五
console.log(ar19);
// 3. 修改元素:从指定位置删除指定个元素,再添加元素
ar19.splice(0,1,'周三');  //张三改为周三
console.log(ar19);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值