如何在for循环中剔除满足条件的元素
作者:互联网
业务开发过程站常常需要在for循环中将某个元素剔除,按照常规的思路,就是对数组进行一个for循环,然后在循环里面进行if判断,在判断中删除掉指定元素即可。但是由于数组下标的问题,实际情况往往不会像预想的那样顺利运行。如下所示:
var arr = [1, 2, 2, 3, 4, 5]; for (var i = 0; i < arr.length; i++){ // 打印数组中的情况,便于跟踪数组中数据的变化 console.log(i + ' = ' + arr[i]); // 删除掉所有为2的元素 if(arr[i] === 2) { arr.splice(i, 1); } } console.log(arr);//[1,2,3,4,5]
此时需要做如下改动,才能达到以下效果:
var arr = [1, 2, 2, 3, 4, 5]; for (var i = 0; i < arr.length; i++){ // 打印数组中的情况,便于跟踪数组中数据的变化 console.log(i + ' = ' + arr[i]); // 删除掉所有为2的元素 if(arr[i] === 2) { arr.splice(i--, 1); } } console.log(arr);
标签:满足条件,arr,console,log,元素,数组,var,剔除 来源: https://www.cnblogs.com/SpringAndMoon/p/13936533.html