JS学习笔记05:数组

  • 数组(内建对象)

  • ?(思考)我们为什么使用数组

创建数组(对象)

创建一个数组,有三种方法。

下面的代码定义了一个名为 myCars的数组对象:

  • 1: 常规方式:

var myCars=new Array(); 
myCars[0]="Saab";       
myCars[1]="Volvo";
myCars[2]="BMW";

  • 2: 简洁方式:new(构造)的时候赋值

var myCars=new Array("Saab","Volvo","BMW");

  • 3: 字面:

var myCars=["Saab","Volvo","BMW"];

  • 获取数组长度

我们可以使用数组对象的length属性来获取数组的长度

连续数组和非连续数组

修改数组的length:

技巧:在数组的最末尾添加一个新元素

arr[arr.length]=100;//在当前数组末尾添加1个新元素100

arr[arr.length]=101;//在当前数组末尾添加1个新元素101

原理:因为数组的length=数组当前最大索引+1.

数组的元素可以存储任何数据

数组中的元素可以是简单数据,也可以是对象,也可以是函数,见下:

var arr=[function(){},function(){}];//为数组增加函数对象
arr[0]();//调用数组中的函数

总结:数组中可以存任何数据。

  • 二维数组:

数组中也可以放数组 例如;

var arr = [[1,2,3],[4,5,6],[7,8,9]];//二维数组

除了二维数组,还会有三维数组,乃至N维数组

  • 数组的方法

(更多方法参考见http://www.runoob.com/jsref/jsref-obj-array.html

  • push方法

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

  • pop() 方法

用于删除数组的最后一个元素并返回删除的元素。

  • unshift() 方法

可向数组的开头添加一个或更多元素,并返回新的长度。

  • shift() 方法

用于把数组的第一个元素从其中删除,并返回第一个元素的值。

以上几个方法示例如下:

var arr=["孙悟空","猪八戒","沙和尚"];
var newLength = arr.push("唐僧","蜘蛛精","玉兔精");//给arr数组末尾添加了新的元素并返回新的长度
console.log(arr + "的长度 = " + newLength);//输出arr和长度

var x = arr.pop();//删除最后一个元素并返回该元素
console.log(x + "已删除(最后一个元素)");//输出“玉兔精”

arr.unshift("张学友","周润发") ;//在数组开头添加张学友和周润发
console.log(arr);//输出数组看看变化

var y= arr.shift();//删除数组第一个元素并返回该元素
console.log(y + "已删除(第一个元素)");
console.log(arr);//输出数组看看变化

控制台输出如下:

  • 遍历数组

方法:通过for循环,使用数组的length属性,遍历数组。如下:

  • forEach方法遍历数组

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

语法

array.forEach(function(currentValue, index, arr), thisValue)
参数

参数描述
function(currentValue, index, arr)必需。 数组中每个元素需要调用的函数。
函数参数:
参数描述
currentValue必需。当前元素
index可选。当前元素的索引值。
arr可选。当前元素所属的数组对象。
thisValue可选。传递给函数的值一般用 "this" 值。
如果这个参数为空, "undefined" 会传递给 "this" 值

  • slice()方法

slice() 方法可从已有的数组中返回选定的元素。

slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

注意: slice() 方法不会改变原始数组。

语法

array.slice(startend)

参数 Values

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

返回值

Type描述
Array返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

slice方法实例:

slice方法总结:

  • splice()方法

splice() 方法用于添加或删除数组中的元素。

注意:这种方法会改变原始数组。

语法

array.splice(index,howmany,item1,.....,itemX)

参数 Values

参数描述
index必需。规定从何处添加/删除元素。
该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany必需。规定应该删除多少元素。必须是数字,但可以是 "0"。
如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1, ..., itemX可选。要添加到数组的新元素

返回值

Type描述
Array如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

例如把数组删掉从(第0下标)起的2个元素。在控制台分别显示原数组被删指定元素后的结果,删除的指定元素(也是个数组)。如下:

  • splice()方法也可以实现插入/替换元素功能。如下图,元素“猪八戒”被删除替换成了”牛魔王“和”铁扇公主“。

  • contact()方法

concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

语法

array1.concat(array2,array3,...,arrayX)

参数

参数描述
array2array3, ..., arrayX必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。

返回值

Type描述
Array 对象返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

  • join()方法

join() 方法用于把数组中的所有元素转换一个字符串。

语法

array.join(separator)

参数值

参数描述
separator可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

返回值

类型描述
String返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。

注意:如果不想用连接符,可以指定空串为分隔符。

reverse() 方法

reverse() 方法用于颠倒数组中元素的顺序。

语法

array.reverse()

返回值

类型描述
Array颠倒顺序后的数组

sort() 方法

sort() 方法用于对数组的元素进行排序。排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序。

如上图,arr中的元素使用sort()方法后按字母顺序排序了。

如果是纯数字排序,请注意:

以下是数字升序及降序示例:

var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});//数字排序(数字和升序):
//fruits输出结果:1,5,10,25,40,100


var points = [40,100,1,5,25,10];
points.sort(function(a,b){return b-a});//数字排序(数字和降序):
//fruits输出结果:100,40,25,10,5,1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值