JS-数组操作全解

数组操作全解


JS变量类型

var string;
var name = "student",age = 12;
//undefined,null,boolean,string,number,为了基本数值类型。逗号一并定义初始化多个变量。基本包装类型String,Boolean,Number通过valueOf()可以获取数值类型,可以实现自动装箱和拆箱操作

数组的定义

var names = [];								//定义数组并初始化为空
names = ["小明","小红","小刚"];			   //赋值,可以再定义时赋值
names = new Array();						//定义数组并初始化为空
names = new Array(names.length);			//数组基类为Array,属性length为数组长度
names = new Array("小明","小红","小刚");		//字符串不区分单双引号,只要配对使用就行

增删改查

//元素增加
names[4] = "小明";				//通过赋值,直接添加了两项,null和“小明”
names.unshift("小李","小兰");	  //首部添加
names.push("小李","小兰");		//末尾添加
//元素删除
var item = names.pop();				//删除获取最后一项
item = names.shift();				//删除获取第一项
names.splice(2,1,"小吉","小明");	//删除添加数据,修改源数组,第一个参数表示开始删除的位(包含),第二个参数表示要删除的数目,后面参数表示在删除位置处添加的元素
//元素读取查找
var nameitem = names[2];		//使用[]读取数组,这是最简单的读取方式
name= names.silce(-4,6);		//读取数组段,不修改源数组,负数表示从右向左数,-1表示末尾第一个元素,0表示首部第一个元素。只有一个参数时表示直到末尾,读取索引包含第一个参数不包含第二个参数
name.indexOf("小明");			//查找匹配元素的位置,没有找到返回-1,lastindexof表示最后匹配的位置
//数组的拼接和字符串表示
names = names.concat("小王",["小明","小黑"]);		//拼接数组,不修改源数组,所以要赋值
var str = stringnames.join(",");				//使用间隔字符串连接数组

遍历

var boolresult = names.every(function(item,index,array){
	//对数组中元素每一项进行布尔运算,返回false和true。every函数,全部元素返回true时返回true。some函数某一元素返回true时返回true
	return (index>2);
});
var nameresult = names.filter(function(item,index,array){
	//返回数组,filter函数获取满足条件的项,map函数获取每一项计算值的集合,不改变原数组,forEach函数等价于for语句,对每项处理
	return (index>2);
});
nameresult = names.reduce(function(pre,cur,index,array){
	//reduce从前向后迭代,reduceRight从后向前迭代
	return prev+"+"+cur;
	//初始值为第一项,cur初始值为第二项,计算值自动传给下一函数prev,返回最后一次迭代产生的值
});

排序

names.reverse();		//数组取反
name.sort();			//数组排序sort(compare),参数可为排序函数,空元素将排到最后
function compare(student1,student2){
	//比较函数,返回-1,0,1
	//return student1.age<student2.age?-1:(student1.age == student2.age?0:1);— -1表示前对象小,1表示后对象小,0表示相等
	//正数自动转化为1,负数转化为-1
	return student2.age-student1.age;
}

数组原型

function array_max(){
	return Math.max.apply(Math,this);		//max取最大值,min取最小值,还有很多数学运算
}
Array.prototype.max = array_max;			//重写数组原型链
varx = new Array(1,2,3,4,5,6);				//应用自定义原型函数
var y = x.max();

转载于:https://my.oschina.net/u/3428115/blog/2246911

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值