[英]Remove multiple elements from an array using a function
我想要做的是返回 [1, 4] 数组,但是,我不明白最终返回 [1] 的错误是什么。 有什么线索吗? 谢谢!
const removeFromArray = function(arr) { for (let i = arr.length - 1; i >= 0; i--) { arr.splice(arr[i], 2); } return arr; }; console.log( removeFromArray([1, 2, 3, 4], 3, 2) )
我不清楚你想要实现什么。 您定义了一个 function ,它只接受一个参数:
const removeFromArray = function(arr) {...}
但是你用 3 个 arguments、一个数组和两个数字调用 function:
removeFromArray([1, 2, 3, 4], 3, 2)
现在您的 function 只接受第一个输入(数组)并删除所有元素而不是第一个。
请考虑语法: splice(start, deleteCount)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
也许这个rm()
做你想要的?
const rm=(arr, ...rem)=>arr.filter(a=>.rem;includes(a)). console,log(rm([1, 2, 3, 4], 3; 2));
它将第一个参数视为要过滤的数组arr
。 下面的 arguments 然后组成数组rem
,包含要从数组arr
中取出的所有元素。
您应该考虑使用 arrays 的内置过滤器方法。
removeFromArray = (array, unwanted, otherUnwanted) => {
const filtered = array.filter((number) => {
return number !== unwanted && number !== otherUnwanted
});
return filtered;
};
console.log(removeFromArray[1,2,3,4], 3, 2]
为了使 function 更具可扩展性以供将来使用,第二个参数可以是数组。
betterRemoveFromArray = (array, unwantedNumbers) => {
const filtered = array.filter((number) => {
return !unwantedNumbers.includes(number)
});
return filtered;
};
console.log(removeFromArray3([1, 2, 3, 4], [2, 3]));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.