📜  从数组 javascript 中删除 null(1)

📅  最后修改于: 2023-12-03 15:06:35.774000             🧑  作者: Mango

从数组 JavaScript 中删除 null

在 JavaScript 中,删除数组中的 null 值可以使用各种方法。下面我们将介绍一些常用方法:

1. 使用 filter 方法

最常用的方法是使用 filter() 方法来过滤掉 null 值,并创建一个新的数组。

const arr = [1, null, 2, null, 3];
const filteredArray = arr.filter((value) => value !== null);
console.log(filteredArray); // Output: [1, 2, 3]

在这个示例代码中,我们首先声明了一个数组 arr,包含一些 null 值。我们然后使用 filter() 方法来创建一个新数组 filteredArray,其中每个 null 值都已被过滤掉。

2. 使用 for 循环

我们可以使用 JavaScript 的 for 循环来遍历数组中的每个元素,如果元素是 null,则使用 Array.splice() 方法从数组中删除元素。

const arr = [1, null, 2, null, 3];
for (let i = 0; i < arr.length; i++) {
  if (arr[i] === null) {
    arr.splice(i, 1);
    i--;
  }
}
console.log(arr); // Output: [1, 2, 3]

在这个示例代码中,我们首先声明了一个数组 arr,包含一些 null 值。我们然后使用 for 循环遍历了整个数组,如果找到一个 null 值,我们就使用 splice() 方法,将这个元素从数组中删除。

需要注意的是,我们在删除元素后会将循环变量 i 减 1,因为数组的长度已经缩小了 1,遍历完整个数组就是 $n-1$ 的长度。

3. 使用 reduce 方法

我们也可以使用 reduce() 方法来遍历原始数组并返回一个过滤后的新数组。

const arr = [1, null, 2, null, 3];
const filteredArray = arr.reduce((accumulator, currentValue) => {
  if (currentValue !== null) {
    accumulator.push(currentValue);
  }
  return accumulator;
}, []);
console.log(filteredArray); // Output: [1, 2, 3]

在这个示例代码中,我们首先声明了一个数组 arr,包含一些 null 值。我们然后使用 reduce() 方法来遍历整个数组。如果当前元素不是 null,我们就将其添加到累加器数组中。最终,我们返回一个过滤后的新数组。

4. 使用 ES6 的 spread 运算符

有时我们可能需要使用类似于解构的方法来移除数组中的 null 值,可以使用 ES6 的 spread 运算符 ... 来实现。

const arr = [1, null, 2, null, 3];
const filteredArray = [...arr].filter((value) => value !== null);
console.log(filteredArray); // Output: [1, 2, 3]

在这个示例代码中,我们使用 ... 运算符将原始数组 arr 扩展到一个新的数组,然后对新数组使用 filter() 方法来过滤 null 值。最终,我们得到了一个过滤后的新数组。

这些都是可行的解决方案来删除 null 值,程序员可以根据实际情况选择使用哪种方法。