📌  相关文章
📜  从数组中删除 null 和 undefined - Javascript (1)

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

从数组中删除 null 和 undefined - Javascript

在JavaScript中,当我们处理数组时,我们可能需要从数组中删除null和undefined。这个过程在我们的代码中非常常见,因为null和undefined表示数组中的一个空项。本文将为您提供一些JavaScript代码片段和技巧,可以帮助您轻松地从数组中删除null和undefined。

从数组中删除 null 和 undefined
使用 filter() 方法

使用Array.filter()方法来过滤数组中的null和undefined是最容易的方法。.filter()方法为每个数组元素执行给定的函数,并返回一个新的数组,其中包含函数返回true的元素。因此,在过滤器函数中,我们只需返回非null和非undefined元素即可。

const arr = [1, null, "hello", undefined, 23];

const filteredArr = arr.filter((el) => {
  return el != null;
});

console.log(filteredArr); // [1, "hello", 23]
使用 for 循环

使用for循环和JavaScript数组的内置delete操作符可以删除数组中的null和undefined元素。

const arr = [1, null, "hello", undefined, 23];

for (let i = 0; i < arr.length; i++) {
  if (arr[i] == null) {
    delete arr[i];
  }
}

console.log(arr); // [1, undefined, "hello", undefined, 23]

但是,delete操作符只是将数组中的元素标记为未定义,而不是从数组中删除它们。具体来说,它会删除元素的值,但不会删除元素占用的空间,所以最终数组会保留相同的长度并且保留一个未定义的值。因此,使用.for循环和delete操作符对于删除数组中的null和undefined元素并不是一个理想的方法。

使用 splice() 方法

使用Array.splice()方法可以从数组中删除任何元素,包括null和undefined元素。该方法可以修改原数组并返回被删除的元素数组。我们可以使用splice方法,遍历数组并从其中删除null和undefined元素。但是,这种方法有一个缺点,它会改变原始数组。如果您不想改变原始数组,则应该使用filter()方法。

const arr = [1, null, "hello", undefined, 23];

for (let i = 0; i < arr.length; i++) {
  if (arr[i] == null) {
    arr.splice(i, 1); // remove 1 item from index i
  }
}

console.log(arr); // [1, "hello", 23]
结论

这篇文章提供了三种JavaScript代码片段,可以帮助您删除数组中的null和undefined。这三种方法中,使用.filter()方法是最流行的,因为它是处理数组的最佳方法,具有直观性,源码简洁,易于使用。但是,对于那些想保留原始数组的情况,使用.splice()方法是最好的。使用for循环和delete操作符并不是一个理想的方法。

希望这篇文章能帮助您快速地从JavaScript数组中删除null和undefined元素,并加深对JavaScript数组操作的理解。