前端筆面試中的編程題

以前是寫在面試記錄裏的,題目有點開始多了就分割出來專門來一篇了面試

  1. 實現一個函數printNum,接受一個參數n,輸出n個遞增天然數
    · 輸出的天然數不能含有7(17,71,176)或爲7的倍數(14,63);若是含有7或爲7的倍數,則輸出下一個天然數;
    · 支持屢次調用,從0開始,每次自上次調用的末尾天然數繼續打印
    · 示例:數組

    printNum(); // 0
    printNum(2); // 1,2
    printNum(5); // 3,4,5,6,8
    printNum(17); // 9,10,11,...,26,29,30
  2. 實現一個函數,接受一個url數組做爲參數,返回一個Promise
    · 要求同事發送請求獲取資源內容(發送請求使用Fetch,fetch函數說明:fetch()必須接受一個參數——資源的路徑。不管請求成功與否,它都返回一個promise對象,resolve對應請求的Response)
    · 當任意一個資源加載成功(經過請求的status狀態便可)則將promise的狀態置爲resolve的,並將該url做爲resolve的參數
    · 當全部的資源加載都不成功時promise狀態置爲reject的
  3. 實現一個函數sum,運算結果能夠知足以下預期結果:promise

    sum(1, 2, 3).valueOf(); // 6
    sum(2, 3)(2).valueOf(); // 7
    sum(1)(2)(3)(4).valueOf(); // 10
    sum(2)(4, 1)(2).valueOf(); // 9

    答案連接函數

  4. 實現一個優先隊列,使得能夠這樣使用:fetch

    const priorityQueue = new PriorityQueue();
    priorityQueue.enqueue('優先級2-1', 2);
    priorityQueue.enqueue('優先級1-1', 1);
    priorityQueue.enqueue('優先級1-2', 1);
    priorityQueue.enqueue('優先級3-1', 3);
    priorityQueue.enqueue('優先級2-2', 2);
    priorityQueue.enqueue('優先級1-3', 1);
    priorityQueue.print(); // 按優先級順序輸出
    priorityQueue.dequeue(); // 輸出最前(相似arr.shift)
  5. 硬幣找零問題(動態規劃相關):有面額爲d1...dn的硬幣,和要找零的錢數,找出所需最小硬幣個數的方案,例如:美國有如下面額(硬幣):d1=1, d2=5, d3=10, d4=25,若是要找36美分的零錢,所需最少硬幣是[1, 10, 25],即知足以下輸出:url

    const minCoinChange = new MinCoinChange([1, 5, 10, 25]);
    console.log(minCoinChange.makeChange(36)); // [1, 10, 25]
    const minCoinChange2 = new MinCoinChange([1, 3, 4]);
    console.log(minCoinChange2.makeChange(6)); // [3,3]
相關文章
相關標籤/搜索