js的set,JS:ES6-9 初識Set與Map

 2023-10-15 阅读 32 评论 0

摘要:Set概述: ES6 提供了新的數據結構 Set(集合)。它類似于數組,但成員的值都是唯一的,集合實現了 iterator 接口,所以可以使用『擴展運算符』和『for…of…』進行遍歷,集合的屬性和方法: 1. size 返回集合的元素個數&#

Set概述: ES6 提供了新的數據結構 Set(集合)。它類似于數組,但成員的值都是唯一的,集合實現了 iterator 接口,所以可以使用『擴展運算符』和『for…of…』進行遍歷,集合的屬性和方法:

1. size 返回集合的元素個數;

2. add 增加一個新元素,返回當前集合;

3. delete 刪除元素,返回 boolean 值;

4. has 檢測集合中是否包含某個元素,返回 boolean 值;

js的set。5. clear 清空集合,返回 undefined;?

set基本語法:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Set</title>
</head>
<body>
<script>
// Set集合
let s = new Set();
console.log(s,typeof s);
let s1 = new Set(["大","二","三","三"]);
console.log(s1); // 自動去重
// 1. size 返回集合的元素個數;
console.log(s1.size);
// 2. add 增加一個新元素,返回當前集合;
s1.add("大");
console.log(s1);
// 3. delete 刪除元素,返回 boolean 值;
let result = s1.delete("三");
console.log(result);
console.log(s1);
// 4. has 檢測集合中是否包含某個元素,返回 boolean 值;
let r1 = s1.has("四");
console.log(r1);
// 5. clear 清空集合,返回 undefined;
s1.clear();
console.log(s1);
</script>
</body>
</html>

Set集合實踐:去重、交集、并集、差集

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Set集合實踐</title>
</head>
<body>
<script>
// Set集合實踐
let arr = [1,2,3,4,5,4,3,2,1];
// 數組去重
let s1 = new Set(arr);
console.log(s1);
// 交集
let arr2 = [3,4,5,6,5,4,3];
// 看來我需要學學數組的一些方法
let result = [...new Set(arr)].filter(item=>new
Set(arr2).has(item));
console.log(result);
// 并集
// ... 為擴展運算符,將數組轉化為逗號分隔的序列
let union = [...new Set([...arr,...arr2])];
console.log(union);
// 差集:比如集合1和集合2求差集,就是1里面有的,2里面沒的
let result1 = [...new Set(arr)].filter(item=>!(new
Set(arr2).has(item)));
console.log(result1);
</script>
</body>
</html>

Map概述: ES6 提供了 Map 數據結構。它類似于對象,也是鍵值對的集合。但是“鍵”的范圍不限于字符串,各種類 型的值(包括對象)都可以當作鍵。Map 也實現了iterator 接口,所以可以使用『擴展運算符』和 『for…of…』進行遍歷;

es6 set,Map 的屬性和方法:

1. size 返回 Map 的元素個數;

2. set 增加一個新元素,返回當前 Map;

3. get 返回鍵名對象的鍵值;

4. has 檢測 Map 中是否包含某個元素,返回 boolean 值;

5. clear 清空集合,返回 undefined;?

js中set的用法。

基本語法實現:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Map集合</title>
</head>
<body>
<script>
// Map集合
// 創建一個空 map
let m = new Map();
// 創建一個非空 map
let m2 = new Map([
['name','白骨精'],
['slogon','長生不老']
]);
// 1. size 返回 Map 的元素個數;
console.log(m2.size);
// 2. set 增加一個新元素,返回當前 Map;
m.set("張三","大哥");
m.set("李四","二哥");
console.log(m);
// 3. get 返回鍵名對象的鍵值;
console.log(m.get("張三"));
// 4. has 檢測 Map 中是否包含某個元素,返回 boolean 值;
console.log(m.has("張三"));
// 5. clear 清空集合,返回 undefined;
m.clear();
console.log(m);
</script>
</body>
</html>

眾所周知: 對象可for...in 但不可for...of

        const m = {}m[1] = 2m['a'] = 'b'console.log(m)for (i in m)console.log(i)//  以下會報錯提示'm is not iterable'//         for (i of m)//            console.log(i)//         for ([i, j] of m)//             console.log([i, j])

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/139934.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息