数组 (Array)
- 数组也是一个对象,是一个用来存储数据的对象和Object类似,但是它的存储效率比普通对象要高
- 数组中保存的内容我们称为
元素
- 数组使用索引(
index
)来操作元素 - 索引指由
0
开始的整数
创建数组
数组由方括号构成,其中包含用逗号分隔的元素列表。
1 | let arr1 = new Array(); |
访问和修改数组元素
可以使用括号表示法访问数组中的元素,与检索特定字符串字符的方法相同。
1 | arr2[0]; |
也可以为数组提供新值来修改或者添加数组中的元素。
1 | arr2[0] = 0; |
获取数组的长度
通过使用length
属性获取数组的长度(数组中的元素个数)。
1 | arr2.length; |
一些数组方法
字符串和数组之间的转换
有时候,我们会看到一个包含在一个长长的字符串中的原始数据,想要将有用的项目分成更有用的表单,然后对它们进行处理,例如将它们显示在数据表中。我们可以使用 split()
方法。在其最简单的形式中,这需要一个参数,要将字符串分隔的字符,并返回分隔符之间的子串,作为数组中的项。
1 | let myData = 'Xiamen,Quanzhou,Putian,Fuzhou,Longyan,Zhangzhou'; |
我们也可以用 join()
方法或者 toString()
进行相反的操作,如:
1 | let myNewString = myArray.join(','); |
toString()
方法更简单,不需要参数,但也代表着是有限制的—它不能转换使用逗号以外的分隔符的字符串。
添加和删除数组元素
使用 push()
可以添加一个或多个元素到数组末尾,方法调用完成时,将返回数组的新长度。首先来看看的例子:
1 | let newLength = myArray.push('Dehua'); |
使用 pop()
可以删除数组最后一个元素,并且返回已删除的元素。
1 | let removedItem = myArray.pop(); |
unshift()
和 shift()
从功能上与 push()
和 pop()
完全相同,只是它们分别作用于数组的开始,而不是结尾。
1 | myArray.unshift('Ningde'); |
其他常用方法
slice()
从一个数组中截取特定范围的元素并将这些元素以数组的形式返回,不改变原数组1
2
3let mySlice = myArray.slice(1,3)
mySlice;
// returns ['Quanzhou', 'Putian']splice()
删除或者添加元素,直接改变原数组,返回值为删除的元素concat()
可以将两个或者多个数组连接成一个数组,不会改变原数组1
2
3
4
5let mySlice2 = myArray.slice(3,5)
mySlice2;
// returns ['Fuzhou', 'Longyan']
mySlice.concat(mySlice,mySlice2)
// returns ['Quanzhou', 'Putian', 'Fuzhou', 'Longyan']reverse()
调换数组中元素的排列顺序,会修改原数组sort()
- 给数组中的元素排序,默认以
Unicode编码
顺序排列,因此直接对数组中的数字排序会产生预料外的结果 - 可以传递一个回调函数作为
sort
的参数,回调函数中有两个形参分别表示数组中一前一后的两个元素- 函数的返回值决定是否交换这个两个元素,当返回值
大于0
时交换,小于0
时不交换,等于0
时认为两个值相等不交换
- 函数的返回值决定是否交换这个两个元素,当返回值
- 会直接修改原数组的元素,与方法的返回值相同
- 给数组中的元素排序,默认以
GitHub Issues