【JS】移除元素 #数组

给定一个数组 nums 和一个值 val,移除所有数值等于 val 的元素,返回数组的新长度

给定 nums = [3,2,2,3], val = 3
输出: 2

给定 nums = [0,1,2,2,3,0,4,2], val = 2
输出: 5

你可以在原地修改输入数组并在 O(1) 额外空间的条件下完成吗



解法一:

Object.splice(index, itemx) 移除元素


var removeElement = function(nums, val) {
       for(let i=0;i<nums.length;i++){
        if(nums[i]==val) {
            nums.splice(i,1)
            i-=1
        }
    }
    // console.log(nums)

    return nums.length
};
### 如何使用 JavaScript 移除两个数组的公共部分 在 JavaScript 中,可以通过多种方法来移除两个数组的公共元素。以下是一个基于 `Set` 和数组方法的解决方案: ```javascript function removeCommonElements(arr1, arr2) { // 创建一个 Set 来存储第二个数组中的所有元素 const setArr2 = new Set(arr2); // 使用 filter 方法过滤掉存在于第二个数组中的元素 return arr1.filter(item => !setArr2.has(item)); } // 示例 const array1 = [1, 2, 3, 4, 5]; const array2 = [3, 4, 5, 6, 7]; const result = removeCommonElements(array1, array2); console.log(result); // 输出: [1, 2] ``` 上述代码中,`Set` 被用来存储 `arr2` 的元素,以便快速查找是否存在某个值[^1]。然后通过 `filter` 方法遍历 `arr1` 并保留那些不在 `arr2` 中的元素。 如果需要双向移除公共部分(即从两个数组中都移除公共元素),可以扩展此逻辑: ```javascript function removeCommonFromBoth(arr1, arr2) { const setArr2 = new Set(arr2); const setArr1 = new Set(arr1); // 从 arr1 中移除公共元素 const filteredArr1 = arr1.filter(item => !setArr2.has(item)); // 从 arr2 中移除公共元素 const filteredArr2 = arr2.filter(item => !setArr1.has(item)); return [filteredArr1, filteredArr2]; } // 示例 const array1 = [1, 2, 3, 4, 5]; const array2 = [3, 4, 5, 6, 7]; const [result1, result2] = removeCommonFromBoth(array1, array2); console.log(result1); // 输出: [1, 2] console.log(result2); // 输出: [6, 7] ``` 这种方法确保了两个数组都不会包含对方的公共元素[^2]。 ### 注意事项 - 数组长度的变化不会影响其他未被修改的元素位置[^2]。 - 如果数组中存在重复元素,需根据需求决定是否保留重复项或去重处理。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值