JavaScript 删除数组中指定元素的6种方法

在JavaScript中,删除数组中的指定元素有多种方法。以下是六种常见的方法:

1. **使用 `splice()` 方法:**

   ```javascript
   let array = [1, 2, 3, 4, 5, 6];
   let indexToRemove = array.indexOf(3); // 获取要删除元素的索引
   if (indexToRemove !== -1) { // 检查元素是否存在
       array.splice(indexToRemove, 1);
   }
   console.log(array); // 输出: [1, 2, 4, 5, 6]
   ```

2. **使用 `filter()` 方法:**

   ```javascript
   let array = [1, 2, 3, 4, 5, 6];
   array = array.filter(item => item !== 3); // 删除值为3的所有元素
   console.log(array); // 输出: [1, 2, 4, 5, 6]
   ```

3. **迭代并重新创建数组(ES6解构):**

   ```javascript
   let array = [1, 2, 3, 4, 5, 6];
   array = [...array.filter(item => item !== 3)]; // 等同于方法2,但创建了新数组
   console.log(array); // 输出: [1, 2, 4, 5, 6]
   ```

4. **使用 `indexOf` 和 `slice()` 方法:**
 

  ```javascript
   let array = [1, 2, 3, 4, 5, 6];
   let indexToRemove = array.indexOf(3);
   if (indexToRemove !== -1) {
       array = array.slice(0, indexToRemove).concat(array.slice(indexToRemove + 1));
   }
   console.log(array); // 输出: [1, 2, 4, 5, 6]


   ```

5. **扩展运算符和逻辑判断简化版(仅针对单个元素):**

   ```javascript
   let array = [1, 2, 3, 4, 5, 6];
   const elementToRemove = 3;
   array = array.filter(item => item !== elementToRemove);
   console.log(array); // 输出: [1, 2, 4, 5, 6]
   ```

6. **遍历并赋值(传统for循环方式):**

   ```javascript
   let array = [1, 2, 3, 4, 5, 6];
   for (let i = 0; i < array.length; i++) {
       if (array[i] === 3) {
           array.splice(i, 1);
           i--; // 因为删除了一个元素后数组长度减小,需要回溯以检查当前索引后的元素
       }
   }
   console.log(array); // 输出: [1, 2, 4, 5, 6]
   ```

请注意,`splice()`方法会直接修改原数组,而`filter()`、扩展运算符和`slice()`等方法则是创建新的数组返回。根据实际需求选择合适的方法。

你可能感兴趣的:(javascript)