JavaScript Map
和Set
對象都是iterable objects。兩個存儲對象都由[key, value]
對組成。我想知道什麼時候用什麼?相互之間是否有偏好?javascript地圖對象vs設置對象
14
A
回答
27
假設您正在討論ES6類型,即使Set
可能使用Map
實現,它們也不是相同的數據結構。
您對Map
的定義是正確的,但Set
是一個唯一值的集合,與可以重複的數組不同。
var array = [1, 2, 3, 3];
var set = new Set(array); // Will have [1, 2, 3]
assert(set.size, 3);
var map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
map.set('C', 3);
map.set('a', 4); // Has: a, 4; b, 2; c: 3, C: 3
assert(map.size, 4);
+9
我認爲值得一提的是Set不是一個鍵值存儲。它也不同於數組,因爲它沒有排序。 –
+0
我也想添加:https://medium.com/ecmascript-2015/es6-set-map-weak-a2aeb7e2d384 – Thomas
2
開發人員通常只在需要地圖時使用常規JavaScript對象。
var obj = {};
obj.name= "Anand Deep Singh";
console.log(obj.name); //logs "Anand Deep Singh"
同樣在ES6,我們可以使用常規的對象。
var map = new Map();
map.set("name","Anand Deep Singh");
console.log(map.get("name")); //logs "Anand Deep Singh"
,但明顯的是一個地圖不與文本對象語法創建,一個使用設置和得到方法店和訪問數據。
它有一個具有方法來檢查的對象是否存在,刪除方法刪除對象和明確方法清除整個對象的關鍵。
Set是值的唯一列表。這只是一個獨特的列表。
var set = new Set(["a", "a","e", "b", "c", "b", "b", "b", "d"]);
console.log(set); //logs Set {"a", "e", "b", "c", "d"}
Set不能像數組那樣訪問,它提供的方法與Map相同。
相關問題
- 1. 對象地圖Javascript
- 2. Backbone.Wreqr vs Javascript對象
- 3. JavaScript對象 - [] VS點
- 4. Javascript設置vs數組vs vs對象定義
- 5. 腳本對象vs Javascript對象
- 6. JavaScript全局對象vs窗口對象
- 7. 對象VS對象
- 8. Gulp設置javascript對象
- 9. JS地圖/對象的設置屬性
- 10. JavaScript concat two地圖對象
- 11. javascript操作對象:地圖
- 12. Javascript地圖/減少對鏈接對象
- 13. 新{對象} vs {對象} =新{對象}
- 14. 設置對象
- 15. Hibernate evict()vs設置對象爲NULL
- 16. 空==對象VS對象== NULL
- 17. Null =!對象vs對象=!空
- 18. jQuery對象VS HTMLElementxxx對象
- 19. javascript對象vs數組vs vs JSON
- 20. Python字典vs Javascript對象
- 21. Javascript MVC:對象vs模型
- 22. Javascript地圖本地對象的方法
- 23. Javascript對象設計
- 24. 前置對象JavaScript中的對象
- 25. C++ - 非本地靜態對象vs本地靜態對象
- 26. 「對象未設置...」在對象創建
- 27. 對象引用未設置到對象
- 28. 對象未設置爲對象
- 29. 對象引用未設置到對象
- 30. 對象引用不設置對象
在JavaScript中,大小寫很重要。請正確使用它。 *(我已經爲此編輯過了。)* –