gpt4 book ai didi

javascript - Map.filter()没有返回预期的输出

转载 作者:行者123 更新时间:2023-12-03 07:23:40 24 4
gpt4 key购买 nike

我正在尝试leetcode删除元素的问题。目的是从数组中删除等于某个值的所有元素。例如,如果array = [3, 2, 2, 3]val = 3输出数组应为[2,2]。
我的过滤器功能似乎根据控制台日志产生了正确的输出,但是在return语句中却完全不同。
以下是我的代码的副本:

/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function(nums, val) {
let filteredNums = nums.filter(element => {
return element !== val
});
console.log(filteredNums)
return filteredNums;
};
这是我得到的输出:

我是否在做某些不正确的事情而丢失了?

最佳答案

通过假定从数组中删除元素,可以通过拼接数组使用其他方法。
通过使用 Array#splice ,您需要从数组的末尾进行迭代,因为已删除元素的索引正在更改。
最后,您需要返回数组的新长度。

/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/

var removeElement = function(nums, val) {
let i = nums.length;

while (i--) if (nums[i] === val) nums.splice(i, 1);

return nums.length;
};

var array = [3, 2, 2, 3];

console.log(removeElement(array, 3));

console.log(array);

关于javascript - Map.filter()没有返回预期的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64837631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com