前端笔口试中的编程题

之前是写在口试纪录里的,题目有点最先多了就支解出来特地来一篇了

  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,运算效果能够满足以下预期效果:

    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. 完成一个优先行列,使得能够如许运用:

    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],即满足以下输出:

    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]
    原文作者:小乐
    原文地址: https://segmentfault.com/a/1190000016095027
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞