数组跟字符串一样,有时候我们也只需要其中的一些数据,那么我们怎么去获取到我们想要的数据呢?我们就可以直接根据索引值去截取他的元素。
一般我们都会使用slice()和splice()这两个方法,他们就相差一个元素,经常容易搞混,今天我们就来摸清楚一下他们的脉。
slice()
参数 :slice(start, end) start是必填,end是选填(start,end都是数组的索引值)返回的是start和end索引之间的数组元素,但是不包含索引为end的元素。
我们可以看到,原数组并没有改变,得到的是一个新的数组,同时如果不传递end,直接得到的就是从start索引开始的,一直到后面的全部的值。
如果开始索引是负数,我们可以从图片看到只有一个“菠萝蜜”,也就是从倒数第二个元素开始,也就相当于arr.(3,4),那么也就是菠萝蜜。
如果end的值已经超出了数组的长度,那么会忽略这个end的值相当于arr.slice(2)。
如果start的值大于end,直接返回空数组。
同理如果end是负数,也是从倒数第几个结束,然后在比较start和end,逻辑就跟上面的逻辑一样了。
splice()
改变原数组,是用来删除或添加数组的数据,返回删除的数组。
先粗略了解一下,从图片可以看出,我们原来的数组arr,只有一个元素“苹果”,被处理后发返回的数组是后面四个元素。我们在看一下w3school的描述:
特意强调一下,第二个参数是要删除的项目数,也就是数量,删除多少个。
如果start是负数,就是从后面往前面数,第几个元素。
传入第三个参数,也就是我们要添加的元素。原来的数组包含了要删除的元素。