请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Map 基于链表的实现,可以用属性和值表现对应关系吗?

本身 object 的 property 和 value 就是一一对应的关系,为什么不用 node.key = value 形式去表现 Map,而是用两个属性 keyvalue呢? 这样做是为了兼容更多的 key 类型吗?因为 javascript 里 object 里的 property 限定了只能是 int,string,Symbol 这3中类型。分别用两个属性,key 就不会有类型限制。除了这点,还有别的考量吗?

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2020-03-22 14:08:30

抱歉,我没有理解你的问题,什么叫 node.key = value 形式去表现 Map?

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕侠4310611 #1
    class Node {
    	constructor(key, value){
    		this[`${key}`] = value;
    	}
    }
    嗯,这个js 是用属性和值的来表示key 和 value 的对应关系。
    
    class Node {
    	constructor(key, value){
    		this.key = key;
    		this.value = value;
    	}
    }
    这种写法是你教程里提到的方式。
    这么一写,第二种方式key 的类型是没有限制的,比第一种好。
    因为js 里很常用属性和值来做对应关系,所以有了这个提问。就是除了让 key 的类型不受限,用第二种方式还有哪些好处。额,看起来就是代码少写一行,哈哈哈
    回复 有任何疑惑可以回复我~ 2020-03-22 15:31:09
  • liuyubobobo 回复 提问者 weixin_慕侠4310611 #2
    关键还是在于第一种方式本身在利用 js 独特的语法特性,而不是一个通用的 map 实现。当然,如果你只是使用 js,并且使用第一种方式可以满足你的需求,当然没问题:)继续加油!:)
    回复 有任何疑惑可以回复我~ 2020-03-22 15:37:55
  • 提问者 weixin_慕侠4310611 回复 liuyubobobo #3
    好的,明白啦,谢谢~
    回复 有任何疑惑可以回复我~ 2020-03-22 17:32:28
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信