請捲動頁面查看每題的詳細回饋。
請將舊式 `for` 迴圈重構成使用 ES6+ 語法中最簡潔且優雅的方法。
function calculateSum(array) {
var total = 0;
for (var i = 0; i < array.length; i++) {
total = total + array[i];
}
return total;
}
請重構以下函式,它必須過濾掉陣列中的**偶數**,並將剩下的**奇數乘以 2**。請使用現代陣列方法 (`filter`, `map`) 實作。
function processArray(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 2 !== 0) { // 奇數
result.push(arr[i] * 2);
}
}
return result;
}
請寫一個函式,接收一個包含 `firstName`、`lastName` 和 `role` 屬性的使用者物件。函式應使用 **物件解構 (Destructuring)** 和 **字串模板 (Template Literals)** 返回一個格式化的歡迎訊息。
function greetUser(user) {
var first = user.firstName;
var last = user.lastName;
var role = user.role;
return "Hello, " + first + " " + last + "! Your role is " + role + ".";
}
請寫一個名為 `delay(ms)` 的函式,它接受一個毫秒數 (`ms`) 作為參數。這個函式必須返回一個 **Promise**,並在指定的毫秒數後解決 (resolve)。
// 這是無法正確實現延遲的錯誤範例:
function delay(ms) {
setTimeout(function() {
console.log(ms + "ms passed");
}, ms);
// 這裡會立即返回 undefined,而非 Promise
}