JS中的Map和Set


 

使用iterable內置的forEach方法

var a = ['A', 'B', 'C']; a.forEach(function (element, index, array) { // element: 指向當前元素的值 // index: 指向當前索引 // array: 指向Array對象本身 alert(element); });

SetArray類似,但Set沒有索引,因此回調函數的前兩個參數都是元素本身:

var s = new Set(['A', 'B', 'C']); s.forEach(function (element, sameElement, set) { alert(element); }); 

Map的回調函數參數依次為valuekeymap本身:

var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]); m.forEach(function (value, key, map) { alert(value); });

JS中參數不要求一致,可以需要幾個寫幾個(當然多寫就是undefined,而且參數名字可以隨便瞎寫【滑稽】)

a.forEach(function (element, index, array,adsf) {
// element: 指向當前元素的值
// index: 指向當前索引
// array: 指向Array對象本身
console.log(element, index, array,adsf);
});
VM2066:5 a 0 ["a", "b", "c"] undefined
VM2066:5 b 1 ["a", "b", "c"] undefined
VM2066:5 c 2 ["a", "b", "c"] undefined

 

for of循環:與java中的foreach類似:

for (var x of a) { alert(x); // 'A', 'B', 'C' }

 

JS的默認對象表示方式為{}鍵值對方式,但是鍵都是字符串,所以引用了Map

var m = new Map([['micheal',99],['bob',90],['baobao',100]]);

m.get('micheal');

也可以這樣:

var m = new Map(); // 空Map m.set('Adam', 67); // 添加新的key-value m.set('Bob', 59); m.has('Adam'); // 是否存在key 'Adam': true m.get('Adam'); // 67 m.delete('Adam'); // 刪除key 'Adam' m.get('Adam'); // undefined

Set 與java中的list相似吧但是值不重復,類型也多變;

add方法添加元素,

var s = new Set([1, 2, 3, 3, '3']);
s.add(4);s.delete(2);



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM