---
# System prepended metadata

title: 【Day20】物件Object-新增、修改、刪除
tags: [JavaScript, 14th鐵人賽]

---

# 【Day20】物件Object-新增、修改、刪除
###### tags: `JavaScript` `14th鐵人賽`
上一篇做了些物件的基本功能及使用方式介紹，本篇會再以物件為主題做一些補充。

- 物件中的物件
- 新增物件屬性
- 修改物件值
- 刪除物件資料

---

上一回有提到物件中的內容皆為屬性非變數，若今天須把屬性中其中一個值當作變數可以這麼做

```jsx
let dog = {
	name : "芒狗",
	age : 5,
};
let myDog = dog.name; // 宣告一個值為物件dog中的name並命名為mydog
console.log(myDog); // 打印出mydog的值
```

## 物件中的物件

上一篇提到物件該如何使用、存放屬性及呼叫方式，若今天物件屬性較複雜時又該如何呼叫呢？

```jsx
var movie = {
  title: "About Time",
  maker: "李察·寇蒂斯",
  duration: 124,
  main_actors:[
   {
     name:"多姆納爾·格里森",
     age:39,
     is_male:true
   },
    {
     name:"瑞秋·麥亞當斯",
     age:43,
     is_male:false
    }
  ]
};
```

在`main_actors`中用了`[ ]`陣列而內容再使用`{ }`陳述物件

```jsx
movie.title // About Time;
// movie物件->main_actors第0個陣列->name的屬性
movie.main_actors[0].name // 多姆納爾·格里森
```

## 新增物件屬性

透過直接賦予`value`的方式新增屬性

```jsx
let dog = {
	name: "芒狗",
	age: 5,
};

dog.brother = true;
console.log(dog)
```

## 修改物件屬性

類似於變數的觀念，假設我的狗狗生日多了一歲想改名成火龍狗

```jsx
dog.name= "火龍狗";
dog.age+= 1;

console.log(dog); //dog物件的值被修改覆蓋
```

## 刪除物件屬性

需要刪除一筆資料時可以使用delete，假設我的狗狗的兄弟很不幸的離開了

```jsx
delete dog.brother;
//狗狗掰掰QQ
console.log(dog.brother); // undefinded
```

以上用了狗狗去做一些範例，若有問題也可以一起討論與指教~