前端筆面試中的程式設計題

2021-09-13 11:02:51 字數 1703 閱讀 5945

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

實現乙個函式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

實現乙個函式,接受乙個url陣列作為引數,返回乙個promise

· 要求同事傳送請求獲取資源內容(傳送請求使用fetch,fetch函式說明:fetch()必須接受乙個引數——資源的路徑。無論請求成功與否,它都返回乙個promise物件,resolve對應請求的response)

· 當任意乙個資源載入成功(通過請求的status狀態即可)則將promise的狀態置為resolve的,並將該url作為resolve的引數

· 當所有的資源載入都不成功時promise狀態置為reject的

實現乙個函式sum,運算結果可以滿足如下預期結果:

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

答案鏈結

實現乙個優先佇列,使得可以這樣使用:

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)

硬幣找零問題(動態規劃相關):有面額為d1...dn的硬幣,和要找零的錢數,找出所需最小硬幣個數的方案,例如:美國有以下面額(硬幣):d1=1, d2=5, d3=10, d4=25,如果要找36美分的零錢,所需最少硬幣是[1, 10, 25],即滿足如下輸出:

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]

面試中遇到的那些程式設計題

if typeof string.prototype.countcharacters function len this.length for i 0 i len i else var max key,max num 0 for var key in obj return 測試 var str ab...

遇到的面試中的程式設計題總結

一 找出單鏈表的中間元素 思路 1 常規解法 不好 2 兩個指標,乙個指標是另乙個指標移動速度的兩倍,當快的指標指向鍊錶的尾部時,慢的指標就指向了鍊錶的中間元素。同理,可以求出單鏈表的任意倍數的位置,並且只需要掃瞄一遍單鏈表。如求指向單鏈表1 3,1 4,1 5,2 3等位置的元素。二 給定整形陣列...

前端程式設計題 模組

完成函式 createmodule,呼叫之後滿足如下要求 1 返回乙個物件 2 物件的 greeting 屬性值等於 str1,name 屬性值等於 str2 3 物件存在乙個 sayit 方法,該方法返回的字串為 greeting屬性值 name屬性值 解決 1 字面量模式 function cr...