<p>先介绍splice</p>
讯享网
一、splice()方法是用来对数组进行增、删操作,该方法返回被删除的元素,改变原数组
二、splice()方法接受三个及以上的参数:
第一个参数: 第一个参数是起始位置(数组的索引)
第二个参数: 第二个参数是要删除的元素个数,如果该参数是负数则默认为0
第三个参数及往后参数: 这些参数是准备要添加进数组的参数
三、1.如果第一个参数为正数 从索引 1 开始删除后面的所有元素包括自身
讯享网
2. 如果第一个参数大于最大索引值 则返回空数组
3. 如果第一个参数是一个负数 从数组末端开始删除元素删除的个数为参数值
讯享网
4. 如果第一个参数为负数并且该负数的绝对值要小于或等于数组长度
四、当有两个参数时,第一个参数为起始位置,第二个参数是要删除元素的个数,如果第二个参数为负数则默认为0
讯享网
五、原生JS手写splice()方法
六、思路
1. 当参数只有一个时,判断该参数的特殊情况和正常情况

特殊情况:(1). 当参数的值为undefined 那么直接将该参数赋值为0
(2). 当该参数的值比数组最后一个元素的索引值还大 那么直接返回一个空数组
(3). 当该参数为0,或者该参数的绝对值比数组的长度还大或者传递进来的不是数字,那么给最终要返回的数组赋值,并且原数组的长度设置为0
正常情况:(1). 该参数是一个合理的正数和合理的负数,那么通过for循环给新数组赋值,减少原数组的长度
2. 当参数有两个时,先判断第二个参数是否合理,为负数或者不是数字转换为0
调用自定义的方法,把第一个参数传进去获取被删除的所有元素,在通过slice方法截取出第二个参数要被删除的个数
3. 当参数有三个及以上时, 通过判断第一个参数得到一个起始位置start,如果第一个参数为负数且它的绝对值大于原数组的长度,那么起始位置就是0,否则就是原数组的长度加上第一个参数,如果第一个参数为正数且在数组最后一个元素索引的范围内,那么起始位置就是第一个参数
调用自定义方法,把前面两个参数传进去,获得被删除的元素,用(middle)表示,此时的this(原数组)就是剩余的元素,把left先赋值给最后将要返回的数组,在将middle清空,将第三个及以上的参数push进middle中,这样就得到了由新元素组成的数组,此时的原数组就是剩下的参数,通过起始位置截取this,得到end数组,在把this起始位置前的元素删除掉,那么就得到了头部(this),中间部分(middle),右边(end),再分别把中间部分和右边部分push到this中就得到了一个改变后的新数组

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/164980.html