[Easy] 手寫陣列 square

2024年1月27日

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

題目描述

想像一下,你正在參與一個高度仰賴陣列操作的項目。你的任務是為陣列原型設計一個新的方法,叫做 square()。這個方法應該有效率地迭代陣列中的每個元素,並返回一個全新的陣列,其中每個元素都是原始元素的平方。假設陣列中只包含數字。

const numbers = [1, 2, 3, 4, 5];
const mixedArray = [1, 3.5];
const emptyArray = [];

numbers.square(); // [1, 4, 9, 16, 25]
mixedArray.square(); // [1, 12.25]
emptyArray.square(); // []

本題解答

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

解法一

Array.prototype.square = function () {
  const squaredArray = [];
  for (let i = 0; i < this.length; i++) {
    squaredArray.push(this[i] * this[i]);
  }
  return squaredArray;
};

解法二

Array.prototype.square = function () {
  return this.map((element) => element * element);
};
🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們