引入
之前介绍了一些基本的数据类型,包括字符串、数值等。今天一起来看看一个比较高级的数据类型——数组
1. Array
JavaScript的数组称作array,可以包含任意的书类型,可以通过索引来访问每个元素。
其中,array的长度记录在length属性中:
var arr = [1, 2, 3.14, 'Hello', null, true]; arr.length; // 返回值是6 复制代码
有趣的是,这个length属性是可以直接赋值的,赋值后会改变array的长度,若缺少定义则会将空缺部分表示为undefined
var arr = [1, 2, 3]; arr.length; // 3 arr.length = 6; arr; // arr变为[1, 2, 3, undefined, undefined, undefined] arr.length = 2; arr; // arr变为[1, 2] 复制代码
2.修改元素
直接通过索引即可修改元素为新的值。修改方式类似python的列表,中括号中间表示索引值,且索引是从0开始的
var arr = ['A', 'B', 'C']; arr[1] = 1; arr; // arr现在更新为['A', 1, 'C'] 复制代码
注意到arr[1]表示的就是arr的第二个元素,直接用赋值语句赋值即可改变元素的值。
这里也很有趣。和python不一样的是,当我们索引的值超过上限,python
等其他编程语言都会报错显示越界,但JavaScript会正常运行,并扩充array的大小
var arr = [1, 2, 3]; arr[5] = 'a'; arr; // arr更新为[1, 2, 3, undefined, undefined, 'a'] 复制代码
3. indexOf()
array可以通过indexOf函数来搜索一个指定的元素,返回他的位置:
var arr = [1, 2, '3', 'x']; arr.indexOf(10); arr.indexOf(20); arr.indexOf(30); arr.indexOf('30'); 复制代码
在上面的运行过程中:
元素1的索引为0
元素2的索引为1
元素3没有找到返回-1
元素'3'的索引为2
4.slice()
如果我们需要截取array的元素(有的地方会称作是切片操作),可以采用slice函数。其会返回一个新的array
var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; arr.slice(0, 3); arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G'] 复制代码
第二行代码的含义就是:切片从第一个开始,到第二个结束,(即切到后一个参数前的一个数,不包括后一个参数的索引)。
所以最后输出是:['A', 'B', 'C']