Map和Object的區(qū)別
- map具有順序本辐,按照set的順序進(jìn)行的排序
- map的key值可以是任意數(shù)據(jù)類型
- map提供了更多的方法可方便使用,如forEach、size慎皱、entries老虫、values、has
- map實(shí)現(xiàn)了iterator接口茫多,可通過for of方法遍歷key value
詳解
1 Object對(duì)象有原型祈匙, 也就是說他有默認(rèn)的key值在對(duì)象上面, 除非我們使用Object.create(null)創(chuàng)建一個(gè)沒有原型的對(duì)象天揖;
2 在Object對(duì)象中夺欲, 只能把String和Symbol作為key值, 但是在Map中今膊,key值可以是任何基本類型(String, Number, Boolean, undefined, NaN….)些阅,或者對(duì)象(Map, Set, Object, Function , Symbol , null….);
3 通過Map中的size屬性, 可以很方便地獲取到Map長度斑唬, 要獲取Object的長度市埋, 你只能用別的方法了;
4 Map實(shí)例對(duì)象的key值可以為一個(gè)數(shù)組或者一個(gè)對(duì)象恕刘,或者一個(gè)函數(shù)腰素,比較隨意 ,而且Map對(duì)象實(shí)例中數(shù)據(jù)的排序是根據(jù)用戶push的順序進(jìn)行排序的雪营, 而Object實(shí)例中key,value的順序就是有些規(guī)律了弓千, (他們會(huì)先排數(shù)字開頭的key值,然后才是字符串開頭的key值)献起;
5 初始化Map的用法:new Map([ [key, value] ]) 或 new Map( map )洋访。new Map( map )的方式為淺拷貝。
Array 和 Set的區(qū)別
- Set 不可以有重復(fù)元素, 而 Array 可以有谴餐∫稣可以通過Array.from(new Set([1, 1, 2]))快速去重
- Set 只能通過迭代器挨個(gè)取值,無法通過Array[0]的方法取值岂嗓。
- Set 沒有Array的Api靈活汁展。
-
求兩個(gè)數(shù)組的并集、交集厌殉、差集