加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
59-set和map.html 4.12 KB
一键复制 编辑 原始数据 按行查看 历史
wangcai 提交于 2023-04-07 16:36 . 完成
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<!-- set和map -->
<!-- object array set map -->
<!-- object map 存在 键值对 -->
<!-- array set 存在 一个个的元素 -->
<!-- <script>
// 有序: 操作慢
let arr1 = ["a", "b", "c", "d"]
let arr2 = ["d", "a", "b", "c"]
// 无序:操作快
// 对象是属性的无序集合
let obj1 = { 1: 100, 2: 200, 3: 300 }
let obj2 = { 3: 300, 1: 100, 2: 200 }
// 有一个数据结构有序的,操作快:二叉树
</script> -->
<!-- <p id="box" class="container" style="color:red">
<img src="./xxx.png" alt="">
<span>span</span>
</p> -->
<!-- <script>
// 书写一个json,描述上面的html
let vDom = {
tag:"p",
props:{
id:"box",
className:"container",
style:"color:red"
},
children:[
{
tag:"img",
props:{alt:"",scr:"./xxx.png"}
},
{
tag:"span",
children:["123"]
}
]
}
</script> -->
<!-- map和object的区别
1)api不同,Map可以以任意类型为key, object的key只能是字符串
2)map是有序结构,操作也很快
-->
<!-- <script>
// obj是一个对象,无序的,对象的键只能是字符串
// let obj = {
// key1:"hello1",
// key2:"world1",
// key3:{a:110}
// }
// let m = new Map([
// ["key1", "hello1"],
// ["key2", "world1"],
// ["key3", { a: 110 }],
// ]);
// m.set("name", "wangcai")
// m.set("key2", "world2")
// m.delete('key2');
// console.log(m.has("key3"));
// console.log(m.size);
// m.forEach((value, key) => console.log(key, value))
// let m = new Map([
// ["key1", "hello1"],
// ["key2", "world1"],
// ["key3", { a: 110 }],
// ]);
// let o = { name: "wc" };
// m.set(o, "666")
// function fn() { };
// m.set(fn, "888")
// let m = new Map()
// let obj1 = { a: 1 }
// let obj2 = { b: 2 }
// // obj1.xxx = obj2;// 这样写,表示obj1和obj2之间有引用关系了
// m.set(obj1, obj2); // 这样写,obj1和obj2是没有引用关系
// console.log(m.get(obj1));
// let obj = {} // 无序的,操作快
// for (let i = 0; i < 1000 * 10000; i++) {
// obj[i + ""] = i;
// }
// console.time("obj find");
// console.log(obj['200000']);
// console.timeEnd("obj find");
// console.time("obj delete");
// delete obj['200000']
// console.timeEnd("obj delete");
// map是有序的,操作快
// let m = new Map();
// for (let i = 0; i < 1000 * 10000; i++) {
// m.set(i + '', i)
// }
// console.time("map find");
// console.log(m.has('200000'));
// console.timeEnd("map find");
// console.time("map delete");
// m.delete("200000")
// console.timeEnd("map delete");
let m = new Map([
["key3", { a: 110 }],
["key1", "hello1"],
["key2", "world1"],
]);
</script> -->
<!-- set和数组的区别
1)api不同,set中不能存储重复数据
2)set是无序的,操作很快
-->
<!-- <script>
let arr = [1, 2, 4, 3, 7, 5, 6]; // 数组是有序的,操作慢
let set = new Set([1, 2, 4, 4, 4, 4, 3, 7, 5, 6]); // set是无序的,操作很快
set.add(110)
set.delete(1)
console.log(set.has(2));
console.log(set.size);
// set中是没骨index的
set.forEach(val => console.log(val))
</script> -->
<script>
let arr = []; // 数组是有序的,操作慢
for (let i = 0; i < 100 * 10000; i++) {
arr.push(i)
}
console.time("arr unshift");
arr.unshift("a")
console.timeEnd("arr unshift");
console.time("arr push");
arr.push("b")
console.timeEnd("arr push");
console.log("-----------");
let set = new Set()
for (let i = 0; i < 100 * 10000; i++) {
set.add(i)
}
console.time("set has");
set.has(500000)
console.timeEnd("set has");
console.time("set add");
set.add("b")
console.timeEnd("set add");
</script>
</body>
</html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化