資料結構
set的用法
weakset的用法
map的用法
weakmap的用法
weakset和weakmap分別是set和map的弱用法
set
//這個特性可以用來去重
let arr =[1
,2,3
,3,4
,4,5
,5,'5'];
let list0 =
newset
(arr)
; console.
log(list0);//
//不做資料型別的轉換,參照'5'
} list.
clear()
; console.
log(
'list'
,list)
;//{}
}for
(let value of list.
values()
)for
(let value of list)
for(
let[key,value]
of list.
entries()
)//add add delete delete clear clear has has
list.
foreach
(function
(item)
)}
weakset
; weaklist.
add(arg)
; console.
log(weaklist)
//報錯
}
map
}
weakmap
; weakmap.
set(o,
123)
; console.
log(weakmap,
get(o)
)//123
}
es5、es6資料結構對比);
console.
info
('map-array-add'
,map,array)
;//查 //map has // array find
let map_exist = map.
has(
't')
;let array_exist = array.
find
(item=>item.t)
; console.
info
('map-array-find'
,map_exist,array_exist)
//改 //map set // array foreach 迴圈遍歷然後改
map.
set(
't',2)
; array.
foreach
(item=>item.t?item.t=2:
''); console.
info
('map-array-modify'
,map,array)
;//刪 //map delete // array findindex 先找到這個值的索引,然後splice去刪
map.
delete
('t');
let index=array.
findindex
(item=>item.t)
; array.
splice
(index,1)
; console.
info
('map-array-delete'
,map,array)
}
set、array對比);
array.
push()
console.
info
('set-array'
,set
,array)
;//查
let set_exist =
set.
has(
)//false
let array_exit = array.
find
(item=>item.t)
console.
info
('set-array'
,set_exist,array_exit)
//改set
.foreach
(item=>item.t?item.t=2:
''); array.
foreach
(item=>item.t?item.t=2:
''); console.
info
('set-array'
,set
,array)
//刪set
.foreach
(item=>item.t?
set.
delete
(item):''
);let index = array.
findindex
(item=>item.t)
; array.
splice
(index,1)
; console.
info
('set-array'
,set
,array)
}
map、object、set的對比
;let map =
newmap()
;let
set=
newset()
;let obj =
//增 map.
set(
't',1)
;set
.add
(item)
; obj[
't']=1
console.
info
(map,
set,obj)
//查 console.
info()
//改 map.
set(
't',2)
; item.t =2;
//set儲存資料元素的話,直接修改資料本身,如果沒有的話,使用foreach去遍歷
obj[
't']=2
; console.
log(map,
set,obj)
//刪//map set 語義上都是delete,但set沒有引用的話,需要foreach去遍歷然後刪除
map.
delete
('t');
set.
delete
(item)
;delete obj[
't']
; console.
log(map,
set,obj)
}
ES6語法 set資料結構
set通過new的方式生成,他類似陣列,但不是陣列,他的乙個重要特點便是他的成員是無重複的!無重複的!無重複的!重要的話說三次 const s new set 那麼在建立set的時候可以新增什麼上去呢?1.陣列,獲得乙個屋重複元素的set 如上所示,他得出來的是無重複的 那麼他是不是陣列 答案很明顯...
es6 語法 (陣列擴充套件)
es6為array增加了from函式用來將其他物件轉換成陣列。當然,其他物件也是有要求,也不是所有的,可以將兩種物件轉換成陣列。1.部署了iterator介面的物件,比如 set,map,array。2.類陣列物件,什麼叫類陣列物件,就是乙個物件必須有length屬性,沒有length,轉出來的就是...
ES6 資料結構)
一 set 用法 set 對陣列進行轉化 新增重複元素不會生效 應用 去重複功能 轉化過程不會有資料型別的轉換 新增 刪除 判斷是否存在的方法 讀取 遍歷 的幾種方法 二 weakset 與set的區別 1.weakset 的元素只能是物件 2.weakset 的物件是弱應用 不會檢測是否在其他中用...