新建一个数组,把符合条件的数据通过push方法放进去比较简单,但是如果数据量比较多的时候就很消耗内存,性能比较差。现在有2种方法不重新创建数组,只改变原数组,完整代码如下:
方法1
var removeElement = function(nums, val) { for (var i = 0; i < nums.length; i++) { console.log(nums.length) if (nums[i] == val) { nums.splice(i,1) i=i-1 } } return nums; }; console.log(removeElement([0,1,2,2,3,0,4,2],2)) //[0,1,3,0,4]
方法2
var removeElement = function(nums, val) { var sameNum=0; for (var i = 0; i < nums.length-sameNum; i++) { if (nums[i] == val) { sameNum++ var delData=nums.splice(i,1) nums.push(delData[0]) i=i-1; } } nums.length=nums.length-sameNum return nums; }; console.log(removeElement([3,2,2,3],3)) //[2,2]