js集合, 物件

2021-10-24 13:29:57 字數 4855 閱讀 8262

乙個識別符號(集合),可以儲存多個資料, 資料不能重複。

集合與陣列的區別

集合的內容具有唯一性 ( 全等匹配) 去重複。

// 宣告集合  建構函式

letf70

=new

set();

//集合賦值

f70.

add(1)

;f70

.add(2

);f70.

add(1)

;f70

.add

("1");

//使用集合

console.

log(

f70)

;//set 可以看出集合有去重複。

//陣列去重

letf71=[

];f71.

push

(123);

f71.

push

(234);

f71.

push

(234);

console.

log(

f71)

;//[ 123, 234, 234 ]

letf70

=new

set(

f71)

;f71=[

...f70];

console.

log(

f71)

;//[ 123,234 ]

//集合的方法和屬性

/** * 屬性size

* 書寫格式: 集合.size

* 功能:輸出集合儲存資料的個數

*/let

f70=

newset([

1,2,

3])console.

log(

f70.size)

;//3

/** * 集合的方法

* * 鏈式呼叫

* 一行**連續書寫多個方法。

* 由於add方法的返回值是集合

* 因此可以在add後面繼續新增add

*/letf70

=new

set();

f70.

add(

"a")

.add

("b").

add(

"c")

;console.

log(

f70)

;//set

//刪除集合裡的內容

f70.

delete

("a");

//小括號裡刪除的內容

console.

log(

f70)

;//set

//集合的鍵值對(鍵值就是鍵名)

//清空集合

f70.

clear()

;console.

log(

f70)

;//set {}

letf70

=new

set([1

,2,3

]);//查詢

console.

log(

f70.

has(1)

);//true

//集合遍歷

for(

let item of

f70.

keys()

)for

(let item of

f70.

values()

)for

(let item of

f70.

entries()

)

資料結構:儲存多個資料

一切事物皆物件!!!

宣告物件

字面量宣告

書寫格式: 關鍵字 標示符 賦值符號 大括號 分號

let f70 = {} ;

let

f70=

; console.

log(

f70,

typeof

f70)

;//{} object

建構函式

書寫格式: 關鍵字 標示符 賦值符號 new object();

let f70 = new object();

let f70 = new object();

/**

* 【物件的初始化】

* ,* 方法名2 : function (),

* ...

* 方法名n : function ()

* }* */

let zhuozhuo =

, dabaojian:

function()

}console.

log(zhuozhuo.eyes)

;//2

console.

log(zhuozhuo.length)

;//100

//使用物件的方法

zhuozhuo.

suidashi()

;console.

log(shexiaoguo.life)

;//99

console.

log(shexiaoguo.money)

;//2000

zhuozhuo.

dabaojian()

;console.

log(shexiaoguo.life)

;//100

console.

log(shexiaoguo.money)

;//1001

/** * 當使用物件不存在的屬性,會得到undefined

* 原因:使用之前,js會在物件中新增此屬性,並賦值undefined

*/let

f72=

;console.

log(

f72.length)

;//undefined

console.

log(

f72.yangfan)

;//undefined

//物件屬性和方法的新增

let f70 =

, shopping:

function

(paymoney)};

f70.gf =

"guoguo"

;f70.bf =

"xiaoxiao"

;f70.money =0;

console.

log(f70);//

console.

log(f70.gf)

;//guoguo

f70.

cry=

function()

f70.

cry();

console.

log(f70.money)

;//1000

//我們發現若新增乙個存在的屬性,會把原有的屬性進行覆蓋。

// 為了解決這個問題,會宣告乙個symbol型別的變數。

// 宣告symbol變數

//注:1、小括號裡的內容是symbol變數的注釋

//2、宣告是不要新增new

let money =

symbol()

;// 給symbol變數賦值(需要告知給哪個物件新增)

f70[money]=0

; console.

log(f70.money)

;//1000

// 使用方式:屬性名[symbol變數]

console.

log(f70[money]);

//0//屬性和方法的刪除

//刪除屬性的格式: delete 物件名.屬性名 ;

delete f70.money;

console.

log(f70.money)

;//undefined

// 使用被刪除的屬性,會等到undefined

// 呼叫被刪除的方法,會報錯(物件沒有這個方法)

//刪除方法的格式: delete 物件名.方法名;

//注:方法名後不加小括號

// delete huangmiliang.work;

//遍歷物件

let f71 =

;//遍歷物件的鍵名

for(

let item of object.

keys

(f71))`

);//鍵名:name 鍵名:age 鍵名:gender

}//遍歷物件的鍵值

for(

let item of object.

values

(wulinmeng))`

);//鍵值:wlm 鍵值:18 鍵值:male

}//遍歷物件的鍵值對

for(

let item of object.

entries

(wulinmeng))`

);//鍵值對:name,wlm 鍵值對:age,18 鍵值對:gender,male

}//判斷物件中是否存在要查詢的鍵名

console.

log(

"name"

in f71)

;//true

console.

log(

"123"

in f71)

;//false

//物件的巢狀

let f73 =

, dance:

function()

}}; console.

log(wulinmeng.gf.name)

;//xiaohua1

js常用內建物件集合

標題math物件 math.pi 圓周率 math.floor 向下取整 math.ceil 向上取整 math.round 四捨五入 0.5 往大的方向取 math.abs 絕對值 math.max 最大值 math.min 最小值 math.random 隨機數 data物件 var data ...

JS效果集合

位置與尺寸的計算 window scrolltop 滑鼠滾動高度 window height 視窗高度 window width 視窗寬度 outerheight 元素高度 outerwidth 元素寬度 offset top 元素相對於文件的位置 offset left 元素相對於文件的位置 po...

js實現集合

集合 不允許重複 es6提出了set資料結構,也就是我們的集合 這裡我們通過物件來模擬集合,適用物件而不使用陣列的原因是因為物件不允許有重複的屬性 是將集合中的值作為物件的鍵來定義 function set 判斷集合中有沒有某乙個值 this.has function val 給集合中新增元素 th...