[Easy] 手寫 fill

2024年3月8日

💎 加入 E+ 成長計畫 與超過 400+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

題目描述

實作 fill 函式,此函式接收四個參數:

  • 一個陣列
  • 要替換的 value
  • start 索引
  • end 索引

該函式會從 startend 索引 (包含 start 但不包含 end) 來把陣列的元素換成 value 。如果未提供 start 索引,則應預設為 0。如果未提供 end 索引,則剩餘元素會被替換為 value

fill([1, 2, 3], "*");
// => ['*', '*', '*']

fill([1, 2], "*", 2, 3);
// => [1, 2]

fill([1, 2, 3, 4, 5], "*", 1, -1);
// => [1, '*', '*', '*', 5]

本題解答

以下是本題的解答,詳細解題思路可以在 E+ 成長計畫看到。如果想練習更多題目,推薦可以到 GreatFrontEnd 上練習

解法

function fill(array, value, start = 0, end = array.length) {
  if (start < 0) {
    start = array.length + start;
  }

  if (end < 0) {
    end = array.length + end;
  }

  if (end > array.length) {
    end = array.length;
  }

  for (let i = start; i < end; i++) {
    array[i] = value;
  }

  return array;
}
🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們