JavaScript >> Javascript 文檔 >  >> Node.js

解決編程問題

編程問題與數學或物理問題沒有太大區別。通常有一個輸入和一個輸出,需要有人通過提供算法來到達。該算法通常是一個函數或一系列函數。

編程難題和玩具問題是提高技能和準備技術面試的好練習。難怪越來越多的在線編程學校(例如 CodeAcademy)將這些金屬訓練作為其課程的主要內容。

將這些步驟應用到解決編程問題的過程中,初學者程序員可能會受益:

  1. 查找輸入
  2. 查找輸出
  3. 想出一些邏輯算法來變換 以簡單的英語輸入輸出,也就是偽代碼
  4. 將偽代碼翻譯成編程語言,例如 JavaScript
  5. 在頭腦中(在白板練習的情況下)或在機器上運行代碼
  6. 將當前輸出與預期輸出進行比較,如果它們不是相同的沖洗,則從第 3 步開始重複

這是 Blake Embery 存儲庫中的一個示例:

通過上述步驟,我們可以得出這個偽代碼:

  1. 獲取號碼
  2. 除以 10,如果結果大於 1,則該數字大於 10
  3. 增加計數器(我們現在知道,如果結果大於 1,我們至少有一個)
  4. 將結果作為新數重複除法,直到新結果小於 1
  5. 返回計數器值退出

現在,讓我們把它翻譯成 JavaScript/Node.js 代碼:

var num = function (n) {
  var i = 1; 
  while ((n/10)>=1) {
    n=n/10;
    i++
  } 
  return i;
}

要測試這些功能,您可以運行:

num (1000);
num (100);
num (10);
num (1);

解決編程問題

var num = function (n) {
  // There is an extra check here to ensure the number is an integer
  return ('' + (n|0)).length;
};

在這兩種情況下,問題都得到了解決,但解決問題的方式將優秀的程序員與優秀的程序員區分開來(知道 API 是加分項)。


Tutorial JavaScript 教程
  1. React Js 中的 Windows 11 💻 🌈

  2. JavaScript - 對象

  3. TypeScript 屬性裝飾器簡介

  4. 了解 react-native 中的 Flex-box 指南(如果您是 Web 開發人員)

  5. 使用 NodeJS 和 AWS 開始使用無服務器功能

  6. 在 JavaScript 中,為什麼 0 等於 false,但是當通過 'if' 測試時,它本身不是 false?

  7. 我從個人項目中學到的 10 件事(WebDev)

  1. 使用 Deno 創建你的第一個模塊

  2. jQuery獲取當前焦點的元素

  3. 帶有 React 16 的天氣應用程序(API:OpenWeatherMap)

  4. MongoDB 中的事務

  5. 將 Ionic 5 應用程序與 kommunicate Bot 集成

  6. 免費書籍:部署 Node.js 🚀

  7. React TS:當您將函數作為道具傳遞時,不要重複類型,使用它們的類型。

  1. 重構代碼的重要性

  2. 如何使用 expressJS 上傳文件

  3. 使用 GitLab、Docker 和 Heroku 進行持續部署

  4. 使用 .NET 和 Pusher 構建實時評論功能