javascript 在for循环[closed]之后返回时显示为空的数组

1cosmwyk  于 2022-12-10  发布在  Java
关注(0)|答案(1)|浏览(101)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
昨天关门了。
Improve this question
我有一个for循环,它将有序数组中的元素推送到一个新的数组中,如果它们不是重复的。我有一个console.log,它显示arr.push()命令正在工作,但是当我在循环结束时返回数组时,它返回的是一个空数组。

var removeDuplicates = function(nums) {
  let arr = [];
  for (let i = 0; i < nums.length; ++i) {
    if (nums[i] !== nums[i - 1] && i < nums.length) {
      const num = nums[i]
      arr.push(num)
      console.log(arr)
    }
  }
  return arr;
};

console.log(removeDuplicates([1, 1, 2, 3, 4, 5, 6, 7, 7]));

当我运行这个解决方案时,输出是一个空数组。但是,for循环中的console.log(arr)完全按照我的意图工作:Leetcode结果:

wbgh16ku

wbgh16ku1#

在我的例子中返回数组

var removeDuplicates = function (nums) {
let arr = [];
for (let i = 0; i < nums.length; ++i) {
    if (nums[i] !== nums[i - 1] && i < nums.length) {
        const num = nums[i];
        arr.push(num);
    }
}
return arr;
};
const array = removeDuplicates([1, 2, 4, 4, 5, 5, 6, 6, 6]);
console.log(array);

使用Set删除重复项

const inputArray = [1, 2, 4, 4, 5, 5, 6, 6, 6];
const data = Array.from(new Set(inputArray));
console.log(data);

相关问题