關於 Object {} 物件
物件.屬性=屬性值
object.type = value
物件.方法(參數)
object.method()
- 相同物件都有相同的屬性、不同的屬性值
- 相同物件都有相同的方法可以用
name(key) & Value 成對
object = {name1: value1, name2: value2, ...}
value 可以裝什麼?
(屬性)1. 原生的值 (boolean / number / string ... 等)
(屬性)2. 物件 object
(方法)3. 函式 function
例:
var member = { firstName: "Eudora", lastName: "Huang", fullName: function(){ return this.firstName + " " + this.lastName } } console.log(member.fullName()) //結果 : "Eudora Huang"
- 注意:用箭頭函示寫 value 裡的 function 時,this 會是 undefind(this的初始值) 而非該函數擁有者(此例為 member)
- 取值時若為 function 必須要加
( )
,不然會輸出整段 fucntion code(參行8取fullName時後面加括弧)
基本操作語法
new Object()
建立 object
建立一個空物件
let obj = {}
建立一個物件並定義key & value
let obj = new Object(); obj.key1 = 'value1'; //或 obj["key1"] = 'value1'; obj.key2 = 2; // obj["key2"] = 2; obj.key3 = 'value3'; // obj["key3"] = 'value3';
或
let obj = { key1: 'value1', key2: 2, key3: 'value3', }
object
obj // { key1: 'value1', key2: 2, key3: 'value3' }
Object.values()
取 object 值
取所有的value
Object.values(obj) // ['value1', 2, 'value3']
取特定的value
obj.key1 // 'value1'
用
.
的方式只能以 key 取obj['key1'] // 'value1'
- 用
[ ]
的方式,[ ]
裡面可以放變數或判斷式 - 如果單純只放key,要加引號
' '
Object.keys()
取 object 屬性(key)
取所有的key
Object.keys(obj) //['key1', 'key2', 'key3']
取第N個的key (從0開始)
Object.keys(obj)[0] //'key1'
delete
刪除 object 屬性(key)
delete刪除特定的key
delete obj.key1
Object.entries(obj)
、Object.fromEntries()
轉型應用
object 轉成 array of array
Object.entries(obj) // [ [ 'key1', 'value1' ], [ 'key2', 2 ], [ 'key3', 'value3' ] ]
array of array 轉回 Object
Object.fromEntries(Object.entries(obj)) // { key1: 'value1', key2: 2, key3: 'value3' }