新建一个数组,把符合条件的数据通过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]
(adsbygoogle = window.adsbygoogle || []).push({});