JS数组

W3school 离线手册开发文档,可以查询字段功能

数组的存储性能比普通对象要好,在开发中我们经常使用数组老存储一些数据

//创建数组对象
var arr = new Array();
//向数组中添加元素
arr[0] = 10;
arr[1] = 30;
arr[2] = 54;
arr[20] = 33;
arr[50] = 40;
//这会造成数组中产生空值

//向数组的最后一位添加元素
arr[arr.length] = 70;
arr[arr.length] = 80;
arr[arr.length] = 90;

数组中的方法

push() 该方法可以向数组的末尾添加一个或多个元素,并返回一个新的长度

var arr = ["保罗","乔治","莱昂纳德"];

arr.push("萨克雷","帕克","吉诺比利");

pop()该方法可以将数组的最后一个元素删除,并将删除的元素返回

result = arr.pop();
console.log(arr);
console.log("result="+result);

unshift()向数组最前面添加一个或多个元素

arr.unshift("邓肯");

shift()删除数组的第一个元素并返回,和pop()相反

将数组中年龄大于18的元素,提取出来

function Person(name,age){
	this.name = name;
	this.age = age;
}

var per = new Preson("海伦",5);
var per2 = new Preson("娜丽",20);
var per3 = new Preson("安妮",25);
var per4 = new Preson("安娜",23);
var per5 = new Preson("泰勒",17);

var perArr = [per,per2,per3,per4,per5];

function GetAdult(arr){
	//创建一个新的数组
	var NewArr[];
	//遍历arr,获取arr的person对象
	for(var i = 0;i<arr.length;i++){
	var p = arr[i];
	if(arr.age >= 18){
		NewArr.push(p);
	}
	}
return NewArr();
}

slice()可以用来提取数组中的指定元素。

参数:
   第一个开始位置的索引。包含开始的元素
   第二个结束位置的索引。不包含结束的元素。
   第二个参数可以不写,此时截取从第一个参数往后的所有参数
   可以传递一个负值,就是倒数

var result = arr.slice(3,5);
console.log(result);

splice()可以删除数组的指定元素

参数:
   第一个开始位置的索引。
   第二个删除的数量。
   第三个,可以传递一些新的元素,这些元素会自动添加到开始索引位置的前面。

arr = ["张三","李四","王五","赵六","法外狂徒"];
var result = arr.splice(0,1,"阿伦""戴维斯");
console.log(result);
var result = arr.splice(0,0,"阿伦""戴维斯"); //不删除直接插入

数组的去重练习

var arr = [1,2,3,2,4,5,5,4,3,1,2,7,8,1];

//获取数组中的每一个元素
for(var i = 0;i<arr.length;i++){
	//获取当前元素后的所有元素
	for(var j=i+1; j<arr.length; j++){
		//判断两个元素的值是否相等
		if(arr[i] == arr[j]){
		//如果相等则证明出现了重复元素,则删除j对应的元素
		arr.splice(j,1);
		//当删除了当前j所在的元素以后,后边的元素会自动补位
		//此时将不会再比较这个元素,我需要在比较一次j所在位置的元素。
		//使j自减
		j--;
		}
	}
}

数组中的其他方法

concat() 可以连接两个或多个是数组,并将新的数组返回
- 该方法不会对数组产生影响

var arr = ["汤姆","杰克","霍利迪"];
var arr2 = ["格里芬","里弗斯","乔丹"];

var result = arr.concat(arr2);
console.log(arr2);

join();可以将数组转换为一个字符串。
在join中可以指定一个字符串作为一个参数,如不指定默认为逗号

result = arr.join();
result = arr.join("-"); //指定连接符
console.log(result);
console.log(typeof result);//查看类型

reverse();该方法可以反转数组。
该方法直接修改数组。

arr.reverse();

sort();对数组进行排序。影响原数组,默认使用Unicode编码排序

   我们也可以自己来指定排序的规则,在sort()中添加一个回调函数。来指定排序规则
   回调函数中需要定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数。
      - 如果返回一个大于零的值,则元素会交换位置。
      - 如果返回一个小于零的值,则元素位置不变。
      - 如果返回0,则认为两个元素相等,也不交换位置。

arr = [4,5];

arr.sort(function (a,b){
		if(a>b){
			return -1;
		}else if(a<b){
			return 1;
		}else{
			return 0;
		}
		//前面的数减去后面的数,如果结果大于0,则交换位置,结果小于零则不交换,等于0不互换。
		return a - b;
		//降序排列
		return b - a;
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值