webveuje/es6/setmap.html
2021-03-23 10:58:10 +08:00

96 lines
2.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var arr = [1, 1, 2, 2, 3, 3, 3]
// console.log(arr)
let set = new Set(arr)
// console.log(set)
set[3] = 2
// console.log(set)
// set 作为数据结构,里面的成员都是唯一的
let strarr = new Set(["s", "l", "S", "L"])
// console.log(strarr) //[s,l,S,L]
strarr.delete("s")
// console.log(strarr, "new")
// console.log(strarr.has("L"))
for (let i of strarr.keys()) {
// console.log(i)
} //for in 会失败
for (let i of strarr.values()) {
// console.log(i)
}
//set实例的键和值都是一样的 所以用keys()/values()的时候 遍历得到的结果是一样的
// entries() 返回键+值
for (let i of strarr.entries()) {
// console.log(i)
}
//Array [ "l", "l" ]
// Array["S", "S"]
// Array["L", "L"]
// 向 Set 加入值的时候不会发生类型转换所以5和"5"是两个不同的值。相同字母的大小写也是不同的值
//set 属性
// set.prototype.constructor 构造函数
// set.prototype.size 返回set实例的值的个数
// set 方法
// set.prototype.add(要添加的值) 向set实例中添加一个元素
// set.prototype.delete(删除的值) 删除set实例中的一个元素
// set.prototype.clear() 清空
// set.prototype.has(要判断的值) 判断是否在set实例中 返回的是布尔值
// Array.from(set的实例) 将set实例转成数组
// 数组去重
// function dedupe(array) {
// return Array.from(new Set(array));
// }
// dedupe([1, 1, 2, 3]) // [1, 2, 3]
// map
const map = new Map([
['name', '张三'],
['title', 'Author']
]);
console.log(map)
const m = new Map();
const o = { p: 'Hello World' };
m.set(o,'content') // m.set(key,value) map实例中能用对象来当键
//json 方法:
// json.stringfy() 对象转成json
// json.parse() json转对象
console.log(m.get(o))
</script>
</head>
<body>
</body>
</html>