第三讲_JavaScript的集合容器

1. Array

Array 对象支持在单个变量名下存储多个元素。

  • JavaScript 数组是可调整大小的,并且可以包含不同的数据类型。
  • JavaScript 数组的索引从 0 开始。
  • JavaScript 数组允许重复元素

1.1 创建数组的两种方式

  • 通过[]创建
let arr = ['张三', '李四', '王五'];
  • 通过new关键字创建
let arr = new Array('张三', '李四', '王五');

1.2 数组常用的属性

  • length:返回数组的元素长度

1.3 数组常用的方法

  • push():添加元素到数组的尾部
  • unshift():添加元素到数组的首端
  • pop():移除数组中尾部的一个元素
  • shift():移除数组中首端的一个元素
  • splice(startIndex, deleteCount):从指定索引开始删除并指定删除元素数量,用一个数组返回删除的元素
  • splice(startIndex, deleteCount, element1, element2):从指定索引开始删除并指定删除元素数量,再指定一个或多个元素替换删除的元素,用一个数组返回删除的元素
  • indexOf():查找元素的索引
  • map():映射器
  • filter():过滤器
  • reduce():累加器
const arr = [1, 3, 5, 7, 9];

// 对元素进行处理后,返回一个新数组
const newArr = arr.map((element) => {
    return element + "hello";
})

// 对元素进行过滤后,返回一个新数组
const newArr = arr.filter((element => {
    return element > 3;
}));

// 累计器,返回累计处理的结果
// 下面操作即将数组元素累加,没有指定accumulator的初始值,它的初始值为数组第一个元素
const result = arr.reduce((accumulator, currentValue) => {
    return accumulator + currentValue;
})
// 下面操作即将数组元素累加,但指定了accumulator的初始值为0
const result = arr.reduce((accumulator, currentValue) => {
    return accumulator + currentValue;
}, 0)

1.4 数组遍历的四种方式

 let arr = ['张三', '李四', '王五']
 // 数组遍历方式一
 for(let i = 0; i < arr.length; i++) {
   console.log(arr[i]);
 }
 let arr = ['张三', '李四', '王五']
 // 数组遍历方式二
 arr.forEach(item => {
   console.log(item)
 })
 let arr = ['张三', '李四', '王五']
 // 数组遍历方式三
 for(index in arr) {
   console.log(arr[index])
 }
 let arr = ['张三', '李四', '王五']
 // 数组遍历方式四
 for(item of arr) {
   console.log(item)
 }

2. Set

Set 对象允许存储任何类型的唯一值。

  • Set中的元素只会出现一次
  • 可以按照插入顺序迭代集合中的元素

2.1 创建Set集合

let set = new Set();

2.2 Set常用的属性

  • size:返回集合中元素的个数

2.3 Set常用的方式

  • add():添加一个元素在集合尾部
  • delete():删除指定元素
  • has():集合中是否有指定元素
  • clear():清空集合

2.4 Set遍历的两种方式

 let set = new Set();
 set.add(1);
 set.add(3);
 set.add(2);

// Set遍历的方式二
 set.forEach(item => {
   console.log(item);
 })
 let set = new Set();
 set.add(1);
 set.add(3);
 set.add(2);
 
// Set遍历的方式一
 for(item of set) {
   console.log(item);
 }

3. Map

Map 对象保存键值对(key-value)。

  • 可以记住键的原始插入顺序
  • 任何值都可以作为键或值

3.1 创建Map对象

let map = new Map();

3.2 Map常用的属性

  • size:Map中键值对的个数

3.3 Map常用的方式

  • set():添加键值对
  • has():Map中是否包含指定的键
  • delete():删除指定键值对
  • clear():清空Map
  • get():获取指定键的值

3.4 Map遍历的三种方式

 let map = new Map();
 map.set("张三", 18);
 map.set("李四", 20);
 map.set("王五", 19);

// Map遍历的方式一
 map.forEach((key, value) => {
   console.log(`key=${key}, value=${value}`);
 })
let map = new Map();
map.set("张三", 18);
map.set("李四", 20);
map.set("王五", 19);

// Map遍历的方式二
for([key, value] of map.entries()) {
  console.log(`key=${key}, value=${value}`);
}
let map = new Map();
map.set("张三", 18);
map.set("李四", 20);
map.set("王五", 19);

// Map遍历的方式三
for(key of map.keys()) {
 console.log(`key=${key}`);
}

for(value of map.values()) {
 console.log(`value=${value}`);
}
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,可以使用Set对象来表示集合。Set是一种数据结构,用于存储唯一的值,不允许重复。可以使用add()方法向集合中添加元素,使用delete()方法删除元素,使用has()方法检查元素是否存在,使用size()方法获取集合的大小,使用values()方法获取集合中的所有值。以下是几种处理集合的常见操作: 1. 并集:可以通过将两个集合合并成一个新的集合来实现并集操作。可以使用扩展运算符(...)和Set对象的构造函数来实现。例如,给定两个集合setA和setB,可以使用以下代码获取并集: ``` var result1 = new Set([...setA, ...setB]); ``` 2. 交集:可以通过过滤其中一个集合中存在于另一个集合的元素来实现交集操作。可以使用filter()方法和has()方法来实现。例如,给定两个集合setA和setB,可以使用以下代码获取交集: ``` var result2 = new Set([...setA].filter(item => setB.has(item))); ``` 3. 差集:可以通过过滤其中一个集合中不存在于另一个集合的元素来实现差集操作。可以使用filter()方法和has()方法来实现。例如,给定两个集合setA和setB,可以使用以下代码获取差集: ``` var result3 = new Set([...setA].filter(item => !setB.has(item))); ``` 除了使用原生的Set对象,还可以手动实现自己的Set类。可以使用对象来模拟集合,使用键来存储唯一的值。可以定义add()方法用于添加元素,delete()方法用于删除元素,has()方法用于检查元素是否存在,size()方法用于获取集合的大小,values()方法用于获取集合中的所有值。 总结来说,JavaScript中可以使用原生的Set对象或自定义的Set类来处理集合,实现并集、交集和差集等常见操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [JavaScript 集合](https://blog.csdn.net/m0_53099201/article/details/129867843)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [JavaScript数据结构与算法 - 集合](https://blog.csdn.net/qq_46025031/article/details/116207266)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值