题目描述
移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4, 2], 2
输出
[1, 3, 4]
-
解题思路1:使用arrayObject.filter(val=>{});利用数组的过滤器,返回新的数组;
function remove(arr, val) { return arr.filter(item=>{ return val!==item }) } -
解题思路2:定义一个新的数组tempArr,将原数组进行遍历,将所有非item的元素push进去;
function remove(arr, item) { let tempArr=[]; for(let val of arr){ if(val!==item){ tempArr.push(val); } } return tempArr; }题目描述 移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回 示例1 输入 复制 [1, 2, 2, 3, 4, 2, 2], 2 输出 复制 [1, 3, 4] -
解题思路1:使用Array.splice(index,howmany,items...);直接修改原数组;for循环遍历时需要i--,重新定义新数组的下标;
function removeWithoutCopy(arr, item) { for(let i=0;i<arr.length;i++){ if(arr[i]==item){ arr.splice(i,1); //重新定义新数组的下标; i--; } } return arr }