JavaScript 集合类相关操作

xiaoxiao2025-08-14  20

昨天实习的时候,有个需求需要在javascript中使用HashMap的功能,我大脑一懵,JavaScript有map这种结构吗?百度了一下,果然有!在此记录一下JavaScript中相关的集合类操作。

function list_test() { let list = [1, 2, 3, 4, 5]; // 向最后插入一个元素 list.push(6); // [ 1, 2, 3, 4, 5, 6 ] console.log(list); // 删除最后一个元素 list.pop(); // [1, 2, 3, 4, 5] console.log(list); list[4] = 100; // [ 1, 2, 3, 4, 100 ] console.log(list); // 转字符串 "1,2,3,4,100" console.log(list.join(",")) // 删除下标从0开始的2个元素,并添加后面的元素 list.splice(0,2,"a","b","C","a"); // [ 'a', 'b', 'C', 'a', 3, 4, 100 ] console.log(list); Array.prototype.remove = function(value){ let index = this.indexOf(value); if(index > -1){ this.splice(index,1); } }; list.remove('a'); // [ 'b', 'C', 'a', 3, 4, 100 ] console.log(list); } function map_test(){ let map = new Map(); map.set("lisi","李四"); map.set("zhangsan","张三"); // 张三 console.log(map.get("zhangsan")); // true console.log(map.has("zhangsan")); map.delete("zhangsan"); // undefined console.log(map.get("zhangsan")); // false console.log(map.has("zhangsan")); map.forEach(function(value,key){ console.log(value,key); }); for(let [key,value] of map){ console.log(key,value) } } function set_test(){ let set = new Set(); set.add(2); set.add(23); set.add(32); set.add(2); set.add(322); set.add(332); set.add(12); set.add(27); console.log(set); // 虽然没有 但是不报错 set.delete(5); set.delete(2) console.log(set); set.forEach(element => { console.log(element); }); } set_test();

总结

List操作: 增:list.push(obj) 删最后一个:list.pop() 删指定下标:list.splice(index,1) 删指定元素:list.remove(obj) 该方法需要重写 改:list[index] = obj 查下标: list.indexOf(obj) 删除并添加:list.splice(index,deleteNumber,obj...) 转字符串:list.join(str) 转字符串:list.toString() 遍历:for循环 forEach等等 Map操作: 增:map.set(key,value) 删:map.delete(key) 改:map.set(key,value) 查:map.get(key) key是否存在:map.has(key) 遍历: map.forEach(function(value,key,map){ console.log(value,key); }); for(let [key,value] of map){ console.log(key,value) } Set操作: 增:set.add(obj) 删:set.delete(obj) 遍历: set.forEach(element => { console.log(element); });

其他的操作,比如集合的交差并补,遇到的时候在说吧。

转载请注明原文地址: https://www.6miu.com/read-5034828.html

最新回复(0)