Splice的坑

2018-01-22  本文已影响0人  阿木林_李

循环添加与删除,确实splice很好用,而且功能强大,但是有个坑确实让人一时半会儿摸不着头脑。所以在此记下。

splice 是直接操作并修改数组的,所以当找到相对应的Array元素时,此时, i的 下标是之前数组的下标,而当删除此元素后,数组下标 i 位置中保存的数字变为了原先数组的下一个元素,然后到了下一个循环时,就跳过了这个元素。原理就是这样子,是不是有点绕。所以用 i = i-1就解决了。

for(var i = 0; i<rowData.length; i++){

     var id = rowData[i][0];

     var parentId = rowData[i][2];

     if(id === parentId){

     original_array.push(rowData[i]);

     rowData.splice(i,1);

     i = i -1;

    }

}

上一篇 下一篇

猜你喜欢

热点阅读