如何从数组中移除所有指定值元素?Odin项目测试求解
解决移除数组中所有指定值元素的问题
针对你需要通过的这个测试,这里提供两种贴合需求的实现方式:
方法1:用Array.filter()(最简洁的数组方法)
filter() 方法会创建新数组,只保留通过测试条件的元素。我们只需要判断元素是否不等于目标值,就能自动过滤掉所有指定元素:
function removeFromArray(arr, value) { return arr.filter(item => item !== value); }
传入测试用例 [1,2,2,3] 和 2 时,filter 会跳过所有等于2的元素,最终返回 [1,3],完美匹配测试预期。
方法2:用for循环(适合理解底层逻辑)
如果想练习for循环的写法,可以手动遍历数组并收集符合条件的元素:
function removeFromArray(arr, value) { const newArr = []; for (let i = 0; i < arr.length; i++) { if (arr[i] !== value) { newArr.push(arr[i]); } } return newArr; }
思路很直接:新建一个空数组,遍历原数组的每个元素,只要元素不等于目标值,就把它加入新数组,最后返回这个新数组即可。
另外要区分开,你提到的Set去重是用来移除数组中重复的元素(比如把[1,2,2,3]变成[1,2,3]),但这次需求是移除所有指定值的元素,所以上面两种方法更贴合当前测试场景。
内容的提问来源于stack exchange,提问作者Simon Andrews
相关产品推荐
相关产品推荐

