不理解为什么这里输出的会是1,2,3
来源:5-8 编程练习
weixin_慕前端6235132
2020-09-15 12:00:37
2回答
同学你好,因为afterValue是1,而array是[1,3],[1,3].indexOf(1)的结果是0,如下:
原因是“1”在数组[1,3]中的索引是0(indexOf获取的是索引的位置)。
同学再看一下。
祝学习愉快!
好帮手慕久久
2020-09-15
同学你好,问题解答下:
根据调用“insert(2).into([1, 3]).after(1)”可知,value=2,array=[1,3], afterValue=1,如下:
所以最终计算的就是“[1,3]. splice([1,3].indexOf(1)+1,0,2)”。其中,splice方法的参数大于2个,代表插入元素,第一个参数代表起始位置,第二个参数代表要删除几项,后面的参数代表要插入的内容;而arr.indexOf(a)是获取数组arr中,元素a所在的索引,如果没有则返回-1,所以“[1,3]. splice([1,3].indexOf(1)+1,0,2)”等价于“[1,3]. splice(1,0,2)”,即在[1,3]索引为1的位置,删除0个元素,插入一个2(在3前面插入一个2),所以得到的是[1,2,3]。
如果我的回答帮到了你,欢迎采纳,祝学习愉快!
相似问题