news 2026/5/8 12:49:07

JavaScript 中 Array 、 Set 、 WeakSet 区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaScript 中 Array 、 Set 、 WeakSet 区别

JavaScript 中 Set 和 Array 的核心区别在于唯一性、顺序性和方法设计。Set 是唯一值集合,Array 是有序列表。

一、Set 与 Array 核心区别

二、关键差异示例

1. 唯一性处理

constarr=[1,2,2,3];constset=newSet([1,2,2,3]);console.log(arr);// [1, 2, 2, 3]console.log([...set]);// [1, 2, 3]

2. 存在性检查性能

// Set 的 has() 是 { O(1): 常数时间,无论数据有多少,操作时间基本固定 },set.has(2);// true,速度快// Array.includes() 是{O(n) 线性时间 } 就像一本本翻书,元素越多越慢arr.includes(2);// true,数组大时较慢,最坏情况:100个元素,要检查到第100个,还能发现。

3. 转换技巧

// 数组去重constunique=[...newSet(array)];// Set 转数组constarrayFromSet=Array.from(set);

WeakSet 与 Set 核心区别

Set 可以存储任何类型,WeakSet只能存储对象。WeakSet是弱引用,不影响垃圾回收。

1、存储限制

// Set 可以存储任何类型constset=newSet();set.add(1);// ✅ 数字set.add("hello");// ✅ 字符串set.add({});// ✅ 对象set.add(Symbol());// ✅ Symbolset.add(null);// ✅ nullset.add(undefined);// ✅ undefinedset.add([1,2,3]);// ✅ 数组set.add(function(){});// ✅ 函数// WeakSet 只能存储对象constweakSet=newWeakSet();weakSet.add({});// ✅ 对象weakSet.add([]);// ✅ 数组(也是对象)weakSet.add(newDate());// ✅ Date 对象weakSet.add(function(){});// ✅ 函数(也是对象)weakSet.add(1);// ❌ TypeError: Invalid value used in weak setweakSet.add("hello");// ❌ TypeError: Invalid value used in weak setweakSet.add(Symbol());// ❌ TypeError: Invalid value used in weak setweakSet.add(null);// ❌ TypeError: Invalid value used in weak set
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 12:48:18

mysql如何限制用户查询结果行数_使用LIMIT实现分页查询

LIMIT必须置于SELECT语句末尾,仅支持两种形式:LIMIT row_count或LIMIT offset,row_count;须配合ORDER BY使用,防注入需参数化或强转整型。MySQL LIMIT 语法怎么写才不翻车直接说结论:LIMIT 必须放在查询语句末尾&#…

作者头像 李华
网站建设 2026/4/15 13:57:35

新拓三维XTOM系统:汽车模具全场3D检测深度技术问答

汽车模具测量的“数字解法”:XTOM蓝光扫描技术核心四问在汽车模具的精密制造环节,效率与精度往往是一对矛盾体。面对结构日益复杂的汽车覆盖件模具,传统的质检手段正逐渐成为拖慢产线节拍的瓶颈。以下四个核心问答,为您深度解析XT…

作者头像 李华
网站建设 2026/5/2 15:10:38

自动化测试框架搭建:Selenium + Pytest + Allure报告

自动化测试框架搭建:Selenium Pytest Allure报告 在当今快速迭代的软件开发周期中,自动化测试已成为保障产品质量的重要手段。Selenium作为主流的Web自动化测试工具,结合Pytest这一强大的Python测试框架,再辅以Allure生成的精美…

作者头像 李华
网站建设 2026/4/15 13:48:22

如何快速部署OPC UA Client:面向开发者的完整配置教程

如何快速部署OPC UA Client:面向开发者的完整配置教程 【免费下载链接】opc-ua-client Visualize and control your enterprise using OPC Unified Architecture (OPC UA) and Visual Studio. 项目地址: https://gitcode.com/gh_mirrors/op/opc-ua-client OP…

作者头像 李华