由于项目原因今天用到了splice方法,被深深地坑了一把,特此写出来,我有一个Json数组,每个都有Type值,但是不同,我想删除指定的Type值,但是随着循环的进行发现永远不可能执行到最后,查了下百度发现有趣的问题如下:
splice 是直接操作并修改数组的,所以当找到数字3时在循环中的 i 下标是2,而当删除数字3后,数组下标 i 位置中保存的数字变为了数字4,然后到了下一个循环 i 下标为3时,数组下标 i 位置中保存的数字是5,所以跳过了数字4,于是调试信息中没有可爱的数字4.。。。原理就是这样子,是不是很绕。只要在循环里加入 i=i-1即可,
参考https://blog.csdn.net/a727911438/article/details/55224532