迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

JavaScript 中防止向数组添加重复项

作者:迹忆客 最近更新:2022/12/16 浏览次数:

JavaScript 中要防止向数组添加重复项:

  1. 使用 Array.includes() 方法检查数组中是否不存在该值。
  2. 如果该值不存在,则使用 push() 方法将其添加到数组中。
  3. 该数组将不包含任何重复值。
const arr = ['apple', 'pear', 'mango'];

const str = 'apple';

if (!arr.includes(str)) {
  // ✅ only runs if value not in array
  arr.push(str);
}

console.log(arr); // 👉️ ['apple', 'pear', 'mango']

我们传递给 Array.includes 方法的唯一参数是要在数组中搜索的值。

includes() 方法返回一个布尔结果:

  • 如果值存在于数组中则为真
  • 如果不是,则为假

我们使用逻辑 NOT ! 运算符来否定对 includes() 方法的调用,因为我们只想在数组中不存在该值时才添加该值。

以下是使用逻辑 NOT ! 运算符的更多示例。

console.log(!true); // 👉️ false
console.log(!false); // 👉️ true

console.log(!'hello'); // 👉️ false
console.log(!''); // 👉️ true
console.log(!null); // 👉️ true

我们可以想象逻辑 NOT ! 运算符首先将值转换为布尔值,然后翻转它。

当我们否定一个假值时,运算符返回真,在所有其他情况下它返回假。

Falsy 值为:nullundefined空字符串NaN0false


使用 indexOf 防止将重复项添加到数组中

要防止向数组添加重复项:

  1. 使用 indexOf() 方法检查该值是否不存在于数组中。
  2. 如果该值不包含在数组中,则 indexOf 方法返回 -1。
  3. 如果满足条件,则将值推送到数组。
const arr = ['apple', 'pear', 'mango'];

const str = 'apple';

if (arr.indexOf(str) === -1) {
  arr.push(str);
}

console.log(arr); // 👉️ ['apple', 'pear', 'mango']

Array.indexOf 方法返回值在数组中第一次出现的索引。

如果数组中不存在该值,则返回 -1。

if 语句检查 indexOf 方法是否返回 -1。 如果是,则该值不存在于数组中,因此我们使用 push() 方法。

另一种方法是使用 Set 对象而不是数组。

Set 对象存储唯一值的集合。 这使得不可能向 Set 添加重复值。

const str = 'apple';

const set1 = new Set(['apple', 'pear', 'mango']);
set1.add(str);

console.log(set1); // 👉️ {'apple', 'pear', 'mango'}

我们使用 Set.add 方法向 Set 添加一个值。

该值已包含在 Set 中,因此我们对 add 方法的调用没有执行任何操作。

Set 对象比数组更受限制,实现的方法也更少。 但是,它们有自己的用例,存储唯一值是主要的用例。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C 语言中获取字符数组的长度

发布时间:2023/05/07 浏览次数:166 分类:C语言

本文演示了如何在 C 语言中获取一个 char 数组的长度。使用 sizeof 运算符来查找字符数组的长度 数组的大小可以用 sizeof 运算符计算,而不考虑元素的数据类型。

在 C 语言中初始化字符数组

发布时间:2023/05/07 浏览次数:158 分类:C语言

本文介绍了如何在 C 语言中初始化字符数组。使用 {} 卷曲括号列表符号在 C 语言中初始化一个字符数组

C 语言中复制字符数组

发布时间:2023/05/07 浏览次数:117 分类:C语言

本文介绍了如何在 C 语言中复制字符数组。使用 memcpy 函数在 C 语言中复制一个字符数组 char 数组可能是 C 代码中最常用的数据结构,复制数组内容是它的核心操作之一。

Django ArrayField 数组字段

发布时间:2023/05/04 浏览次数:167 分类:Python

在本文中,我们将学习在 Django 数据库模型中使用 ArrayFields。Django中的ArrayField类似于Java、C、C++等其他编程语言中的数组数据结构,存储相同数据类型的多个值。

计算 Java 数组中的重复元素

发布时间:2023/05/01 浏览次数:202 分类:Java

本篇文章介绍Java计算数组中重复元素的方法。计算 Java 数组中的重复元素。我们可以创建一个程序来计算数组中的重复元素。 该数组可以是未排序的,也可以是已排序的。

MATLAB 数组大小限制

发布时间:2023/04/23 浏览次数:92 分类:MATLAB

本教程将讨论如何使用 MATLAB 中的 memory 命令检查内存限制和数组的最大大小。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便