javascript - array.splice 忽略其中一个元素
问题描述
我试图删除数组nums中的所有零,但由于某种原因splice()方法忽略了其中一个零。你能告诉我是什么原因吗?
var deleteZeroes = function(nums) {
for(var i=0 ; i<nums.length ; i++)
{
if(nums[i]===0)
{
nums.splice(i,1)
}
}
return nums
};
deleteZeroes([0,0,4,0,3])
解决方案
可以使用filter()
方法执行任务
示例:1
var deleteZeroes = function(nums) {
var n = nums.filter(x => x !== 0);
return n
};
console.log(deleteZeroes([0,0,4,0,3]));
示例:2 (短语法)
var deleteZeroes = (nums) => (nums.filter(x => x));
console.log(deleteZeroes([0,0,4,0,3]));