数组例题集

  • 对象的定义方式
  1. 字面量:var a = {}
  2. 构造函数(系统自带)
  3. 自定义构造函数
  4. Object.create()
  • 数组的2种定义方式(全来源于Array.prototype)
  1. 数组字面量:var a = []//相当于new Array[]
  2. 系统提供的构造方法:var a = new Array[]
    push
// push 可以在数组最后添加多为数据
//写push方法
Array.prototype.mypush = function(){
	for(var i = 0; i < arguments.length; i++){
		//这里的this.length会自动改变,无需手动+1
		this[this.length] = arguments[i];//谁调用this,谁就是this
	}
	return this.length;//返回数组长度
}

在这里插入图片描述
pop
在这里插入图片描述
shift&unshift
在这里插入图片描述
课后题:手写shift方法思路
方式1:把插入的数作为新数组和本数组拼接concat
方式2:把本数组push到新数组后面

reverse
在这里插入图片描述
splice(从第几位开始,截取多少长度,在切口处添加新的数据)
在这里插入图片描述

  • splice如何实现负数参数定位?
// 假设数组长度是4
splice = function(pos){
	pos += pos > 0 ? 0 : this.length;
	//-2 + 4 = 2
	//-1 + 4 = 3
	//此处省略越界处理
	return ((pos >= 0 || pos < this.length) ? [数组] : []) 
}

sort
在这里插入图片描述

sort方法详细说明链接

var arr = [5,4,10];
//选择排序		//5,10 第3遍传参
//最小的放在	//4,10 第2遍传参  顺序不变
//该轮数组最前	//5,4 第1遍传参  顺序调换
arr.sort(function(a,b){
	if (a < b ) {// 按某种排序标准进行比较, a 小于 b
		return -1;
		}
	if (a > b ) {
		return 1;
		}
	  // a must be equal to b
	return 0;	
}

//第二版
//选择排序		//5,10 第3遍传参
//最小的放在	//4,10 第2遍传参  顺序不变
//该轮数组最前	//5,4 第1遍传参  顺序调换
arr.sort(function(a,b){
	return (a - b) ;//升序
	// return (b - a) ;//降序
});
//给一个有序的数组,乱序
var arr = [1,2,3,4,5,6,7];
arr.sort(function(a,b){
	return Math.random() - 0.5;
});
//按年龄排序
var lily = {name:'lily',age:18,sex:'female'}
var john = {name:'john',age:10,sex:'male'}
var lucy = {name:'lucy',age:3,sex:'female'}
var arr = [lily,john,lucy];
arr.sort(function(a,b){
	return a.age - b.age;
})

在这里插入图片描述
concat
在这里插入图片描述
join:按连接符连接数组元素成字符串<互逆>split:按拆分符拆分字符串成数组
在这里插入图片描述

  • join() 不传参数按,(逗号)连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值