这个是我在牛客网中看到的一个题目,这个题目中就是求一个数组的翻转的方式,正好友好多人在下面评论了,我总结下这些评论。关于数组的一些操作。
题目:将数组var a = [1, 2, 3]变成数组[4, 3, 2, 1]的正确方式?
A、a.reserse().unshift(4) B、a.push(4).reserve() C、a.push(4), a.reserve() D 、a.splice(3 , 1, 4).reserve()
根据下面的知识点的解题思路:
A选项,a.reverse()后返回值即数组a变成[3,2,1],再使用unshift()方法在数组开头添加一个4,a数组就变成了[4,3,2,1]。注,unshift()返回新数组的长度,此处为4。正确。
B选项,push()方法返回新数组的长度,是一个number类型,不是数组,所以不能再用“.”操作符继续执行reverse()方法。错误。
C选项,正确。
D选项,splice()语法:arrayObject.splice(index,howmany,item1,.....,itemX)。
参数:
index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目。
以下这几个是不改变原数组:
1、 concat()
连接两个或多个数组
不改变原数组
返回被连接数组的一个副本
2、join()
把数组中所有元素放入一个字符串
不改变原数组
返回字符串
3、 slice()
从已有的数组中返回选定的元素
不改变原数组
返回一个新数组
4、 toString()
把数组转为字符串
不改变原数组
返回数组的字符串形式
以下这几个是改变原数组:
5、 pop()
删除数组最后一个元素,如果数组为空,则不改变数组,返回undefined
改变原数组
返回被删除的元素
6、 push()
向数组末尾添加一个或多个元素
改变原数组
返回新数组的长度
7、 reverse()
颠倒数组中元素的顺序
改变原数组
返回该数组
8、 shift()
把数组的第一个元素删除,若空数组,不进行任何操作,返回undefined
改变原数组
返回第一个元素的值
9、 sort()
对数组元素进行排序(ascii)
改变原数组
返回该数组
10、 splice()
从数组中添加/删除项目
改变原数组
返回被删除的元素
11、 unshift()
向数组的开头添加一个或多个元素
改变原数组
返回新数组的长度