JavaScript 集合類相關操作
阿新 • • 發佈:2018-12-29
昨天實習的時候,有個需求需要在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);
});
其他的操作,比如集合的交差並補,遇到的時候在說吧。