js基础-数组及数组的方法

一、什么是数组

在程序设计中我们需要使用变量来储存值,而当数据量增多,重复的声明操作就变得异常繁复,为了处理方便, 把具有相同类型的若干元素组织起来的一种形式,这种形式即称之为数组。
数组是一个有序的,值的集合。
每个值叫做元素,每个元素在数组中都有数字位置的编号,即索引。索引下标以0开始。

二、定义数组

数组对象用来在单独的变量名中存储一系列的值。
我们可以使用关键词 new 来创建数组对象,隐式创建,或创建时指定数组长度。

1.var arr = new array();
2.var arr = [];
3.var arr = new array(10);

三、数组的赋值

对数组进行赋值操作时,可以在以在已声明数组的合法位置进行赋值;当然也可以在声明数组时直接添加初始值。

var arr1= new array();
arr[0] = 'abc';
arr[1] = 'end';
arr[2] = 'hello';
arr[31] = 'world';
var arr2 = new array('abc''hello''world');
var arr3 = ['abc','hello','world']

四、数组的长度

无论用哪种方式,创建的数组都有一个属性length

	var a = new array();    //   a.length==0
	a = new array(10);     //   a.length==10
	a = new array(1,2,3);   //   a.length==3
	a = [1,2,3,4,5,6];       //   a.length==6
	a[47] = 'asd';       //   a.length==48

五、用for循环语句,给数组赋值。

	var arr=[];
	for(var i=0;i<10;i++){
		arr[i]=i
	};

六、数组的遍历

用数组的length属性来遍历整个数组

//数组的遍历
var saysth=['hello world','你号','你滴powerful'];
for(var i=0;i<saysth.length;i++){
	alert(saysth[i]);
}

当数组元素不确定为连续的时候,就要加一个判断,看元素是否被定义了。

//数组的遍历
	var saysth=['hello world','你号','你滴powerful'];
	saysth[10]='思密达'for(i in saysth){
		if(saysth[i]!=undefined){//判断元素是否被定义了
			alert(saysth[i];
		}
	}

1.Array.map

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。

	var saysth=['hello world','你号','你滴powerful'];
	saysth.map(function(e){
		return e+=1
	})
	//["hello world1", "你号1", "你滴powerful1"]

2.Array.forEach

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。

	var saysth=['hello world','你号','你滴powerful'];
	saysth.forEach(function(e){
		alert(e)
	})

注意,若是你的项目要兼容ie或者老板仍然使用着android2.0+之类的情况存在,忘记这两条吧;

七、多维数组

数组a的元素b,还是一个数组那么a数组就是一个多维数组。

var a=new array();
a[0]=[1,2,3];
a[1] =['a','b','c','d'];
//多维数组元素的访问alert(a[1][0]);

八、数组的方法

1.Join()方法

Join()方法可以讲一个数组的所有元素都转换成字符串,然后再把他们连接起来。可以指定一个可选的字符串来分隔,如果没有指定,默认使用逗号分隔。

var s=['hello world','你号','你滴powerful'];
var a=s.join();
//"hello world,你号,你滴powerful"

2.reverse()方法

reverse()方法可以将一个数组的所有元素的顺序进行颠倒。

var s=['a','b','c'];
var a=s.reverse();
//["c", "b", "a"]

3.sort()方法

Sort()方法可以将一个数组的所有元素按字母进行排序

var s=['b','c','a',20,2,,100,1,10];
var a=s.sort();
//[1, 10, 100, 2, 20, "a", "b", "c", empty]

4.concat()方法

Concat()方法可以连接连个数组,并且产生新的数组。

var s=['a','b','c'];
var b=[1,2,3];
var a=s.concat(b);
//["a", "b", "c", 1, 2, 3]

5.slice()方法

slice()方法可以返回一个指定数组的一处片段;
语法

Array.slice(start,end)

返回值
返回一个新的数组,包含从start到end(不包括该元素)的array中的元素。

参数描述
Start必须,规定从何处开始选取,如果是负数那么他规定从数组北部开始算起的位置,也就是说-1值最后一个元素,-2旨倒数第二个元素,以此类推。
End可选,规定何处结束选取,该参数是数组片段结束处的数组下标,如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素,如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

例:

var s = [1,2,3,4,5,6];
var a = s.slice(1,3);
//[2,3]

6.splice()方法

定义和用法
splice()方法向/从数组中添加/删除项目,然后返回被删除的项目。
tips:该方法会改变原始数组,

语法

arrayObject.splice(index,howmany,item1,……,itemX)
参数描述
Index必须,整数,规定添加/删除项目的位置,使用负数可以从数组结尾处规定位置。
Howmany必须,要删除的项目数量,如果设置为0,则不会删除项目
Item1,…,itemx可选,向数组添加新的项目

例:

	var s = ["a", "b", "c", "d"];
	s.splice(2,0,"e","f");
	//添加e,f原数组变成["a", "b", "e", "f", "c", "d"]
	var s = ["a", "b", "c", "d"];
	var a = s.splice(2,1);
	//s = ["a", "b", "d"];a=["c"]

7.pop()方法

定义和用法
Pop()方法用于删除并放回数组的最后一个元素。

	var s = ["a", "b", "c", "d"];
	var a = s.pop();
	//s=["a", "b", "c"];a="d"

返回值
ArrayObject的最后一个元素。
说明
pop()方法将删除arrayObject的最后一个元素,吧数组长度减一,并且返回他删除元素的值。如果数组已经为空,则pop()不改变数组,并返回undefined值。

8.push()方法

定义和用法
Push()方法可向数组的末尾添加一个或者多个元素,并且返回新的长度。
语法

Array.push(newelement1,newelement2,…newelementX)

返回值
把指定的值添加到数组后的新长度

参数描述
Newelement1必须。要添加到数组的第一个元素
Newelement1可选。要添加到数组的第二个元素
NewelementX可选,可添加多个元素。

例:

	var s = ["a", "b", "c", "d"];
	var a = s.push('e','f');
	//s=["a", "b", "c", "d", "e", "f"];a=6

9.shift()方法

定义和用法
Shift()方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
语法

	var s = ["a", "b", "c", "d"];
	var a = s.shift();
	//s=["b", "c", "d"],a='a'

返回值
数组原来的第一个元素的值。
说明
如果数组是空的,那么shift()方法讲不进行任何操作,返回undefined的值,请注意,该方法不创建新数组,而是直接修改原有的arrayObject。

10.unshift()方法

定义和用法
Unshift()方法可以向数组的开头添加一个或更多元素,并返回新的长度。
语法

	array.unshift(newelement1,newelement2,,newelementX)
参数描述
Newelement1必须。要添加到数组的第一个元素
Newelement1可选。要添加到数组的第二个元素
NewelementX可选,可添加多个元素。

九、es6\7\10新增

分别增加了不少东西,想了一下这篇基础先不写那么多了,另开一篇单独写新增的东西,之后把链接贴过来。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值