for循环进行splice只能循环一次
> 注:只是本人在学习应用时遇到的问题以及解决方式,如有不对或更好的方法可以在评论区评论,一起学习
在使用for循环时,将目标删除后发现只删除了一个目标就停止了
for ( let i = 0 ; i < dataM.length ; i++ ) {
if ( dataM[i].visible === '1' || dataM[i].status === '1' ) {
dataM.splice(i, 1);
}
在查询资料和请教之后,发现splice() 方法向/从数组添加/删除项目,并返回删除的项目。
注释:splice() 方法会改变原始数组。 这个很重要
在使用splice方法之后改变了原数组,导致原数组的length数量发生改变,产生: i >= dataM.length 的情况,所以停止循环
更改之后:
for ( let i = 0 ; i < dataM.length ; i++ ) {
if ( dataM[i].visible === '1' || dataM[i].status === '1' ) {
dataM.splice(i, 1);
i--;
}
这样就可以了

浙公网安备 33010602011771号