JavaScript高级数据类型之数组

72 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第20天,点击查看活动详情

✔个人主页:Mr.Darcy8的掘金主页

🎉欢迎关注👀点赞👍收藏⭐留言📝以及交流人生哲理🎈学习心得🎁

引入

之前介绍了一些基本的数据类型,包括字符串、数值等。今天一起来看看一个比较高级的数据类型——数组

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']

新人上路,欢迎互相帮扶~Mr_darcy8的掘金主页

可以的话给咱点个赞呗💖