<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Map</title>
</head>
<body>
<script>
// Object.prototype[Symbol.iterator]=function(){
// var keys=Object.keys(this)
// var count=0
// var _self=this
// return {
// next:function(){
// return count<keys.length?{
// value:[keys[count],_self[count++]],
// done:false
// }:{
// value:undefined,
// done:true
// }
// }
// }
// }
// const obj={
// a:1,b:2,c:3
// }
// for(let [key,value] of obj){
// console.log(key,value)
// }
// const geyao=new Map()
// geyao.set(0,1);
// geyao.set(-0,1)
// console.log(geyao)
function replacer(key,value){
if(value instanceof Map){
return {
type:"Map",
value:[...value]
}
}else{
return value
}
}
function reviver(key,value){
if(value.type==="Map"){
return new Map(value.value)
}
return value
}
var geyao=new Map()
geyao.set("a",1)
geyao.set({a:1},3)
geyao.set([1,2,3],3)
const stringRes=JSON.stringify(geyao,replacer)
const reviverRes=JSON.parse(stringRes,reviver)
console.log(stringRes)
console.log(reviverRes)
</script>
</body>
</html>
运行结果