首页 > 解决方案 > 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])

标签: javascriptarrays

解决方案


可以使用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]));


推荐阅读