# 🏅 Day 13 - 函式與陣列物件整合運用
綜合前幾天函式觀念以及陣列物件相關操作,回答下方問題。
請使用 CodePen 繳交,並透過「註解」進行回答。
問題
---
依照註解敘述,完成下方程式碼(只需要補上 `...` 的部分,其餘不要更動)
```javascript=
let courses = [
{
title: 'Javascript',
members: 400,
id: 1,
isStarted: true,
isSoldout: true,
tasks: ['主線任務', '每日任務']
}
];
let newCourse = {
title: 'Vue3',
members: 300,
id: 2,
isStarted: false,
isSoldout: true,
tasks: ['主線任務', '每日任務']
};
// 1. 請將 courses 陣列中 id 為 1 的物件,tasks 陣列新增一筆資料為 '每日刷題'。
// 2. 請完成下方函式,將物件做為參數,判斷當課程中的 isSoldout 屬性為 true 時,
// 就將此物件新增到 courses 陣列中,並回傳 courses 陣列的長度
// (只需要補上 ... 的部分,其餘不要更動)
function addCourse(courseObj) {
if(...) {
courses....;
return ...;
console.log('新增成功');
} else {
console.log('無法新增');
return ...;
}
return;
}
let coursesLength = addCourse(newCourse);
// 3. 完成上方程式碼後,選出正確敘述
// 選項:
// (1) 最後程式碼會印出 '新增成功',而變數 coursesLength 的值會變為 2
// (2) 最後程式碼不會印出任何字串
// (3) 如果 newCourse 的 isSoldout 屬性值為 false 時,執行 addCourse(newCourse) 將不會印出任何字串,也不會回傳 courses 陣列的長度
```
<!-- 解答:
```javascript=
let courses = [
{
title: 'Javascript',
members: 400,
id: 1,
isStarted: true,
isSoldout: true,
tasks: ['主線任務', '每日任務']
}
];
let newCourse = {
title: 'Vue3',
members: 300,
id: 2,
isStarted: false,
isSoldout: true,
tasks: ['主線任務', '每日任務']
};
// 1.
courses[0].tasks.push('每日刷題');
// 2.
function addCourse(courseObj) {
if(courseObj.isSoldout) {
courses.push(courseObj);
return courses.length;
console.log('新增成功');
} else {
console.log('無法新增');
return courses.length;
}
return;
}
let coursesLength = addCourse(newCourse);
// 3. 完成上方程式碼後,選出正確敘述
// 答案:(2)
```
-->