• 前端博客微信群一周面试题汇总


    1.请用一行代码实现数组扁平化?

     1 /**
     2 
     3  * 数组扁平化(方式一)
     4 
     5  * @param {Array} arr 数组
     6 
     7  */
     8 
     9 function flat1 (arr) {
    10 
    11  return [].concat(...arr.map(v => Array.isArray(v) ? flat1(v) : v))
    12 
    13 }
    14 
    15 /**
    16 
    17  * 数组扁平化(方式二)
    18 
    19  * @param {Array} arr 数组
    20 
    21  */
    22 
    23 function flat2 (arr) {
    24 
    25  return arr.flat(Infinity)
    26 
    27 }

    2.请在不使用Set的情况下实现数组去重?

     1 /**
     2 
     3  * 数组去重复
     4 
     5  * @param arr {Array} 数组
     6 
     7  */
     8 
     9 function unique(arr){
    10 
    11    return arr.filter((v, i) => Object.is(i, arr.indexOf(v)))
    12 
    13 }

    3.计算一个字符串中出现重复字符的个数(不区分大小写)?

     1 /**
     2 
     3  * 出现重复字符的个数
     4 
     5  * @param {String} text 字符串
     6 
     7  */
     8 
     9 function duplicateCount (text) {
    10 
    11  return (text.toLowerCase().split('').sort().join('').match(/(.)1+/g) || []).length
    12 
    13 }

    4.已知DNA是双链结构,由4种碱基对构成,A和T互相配对,C和G互相配对,若有任意一条DNA单链,求配对的单链?

     1 function DNAResolve (dna) {
     2 
     3    return dna.replace(/(A|T|C|G)/gi, function($1){
     4 
     5        return {
     6 
     7            A: 'T',
     8 
     9            T: 'A',
    10 
    11            C: 'G',
    12 
    13            G: 'C'
    14 
    15        }[$1]
    16 
    17    })
    18 
    19 }

    5.写一个将字符串转驼峰式的函数

     1 function camelCase (str) {
     2 
     3  return str.split(' ').map(v => v.replace(/(w)/g, function (fl) {
     4 
     5    return fl.toUpperCase()
     6 
     7  })).join('')
     8 
     9 }
    10 
    11 camelCase('hello world') // 'HelloWorld'

    6.求泰波那契数列

    已知斐波那契数列规律为[1, 1, 2, 3, 5...], 而泰波那契数列是从第4个元素开始,后面每个元素都是前3个元素之和,请写一个有2个参数的函数,参数1是初始化数组,参数2是该函数返回泰波那契数组的长度,返回值是泰波那契数列。

     1 function tribonacci(signature,n){
     2 
     3  for (var i = 0; i < n-3; i++) {
     4 
     5    signature.push(signature[i] + signature[i+1] + signature[i+2]);
     6 
     7  }
     8 
     9  return signature.slice(0, n);
    10 
    11 }
    12 
    13  tribonacci([1,1,1],1) // [1]
    14 
    15  tribonacci([0,2,7],2) // [0, 2]
    16 
    17  tribonacci([1,1,1],10) // [1,1,1,3,5,9,17,31,57,105]

    7.请在不使用结构伪类选择器的情况下,用CSS实现每个链接之间用竖线分隔,竖线样式为 1px solid #aaa;

    <nav class="list">
    
     <ul>
    
       <li><a href="#">优酷</a></li>
    
       <li><a href="#">爱奇艺</a></li>
    
       <li><a href="#">风行</a></li>
    
       <li><a href="#">土豆</a></li>
    
       <li><a href="#">B站</a></li>
    
     </ul>
    
    </nav>
    * {
    
         margin:0;padding:0;
    
       }
    
       nav{
    
         font-size: 16px;
    
         overflow: hidden;
    
         margin: 20px 50px;
    
       }
    
       .list ul {
    
         overflow: hidden;
    
       }
    
       .list li {
    
         float: left;
    
         list-style-type: none;
    
       }
    
       .list a {
    
         display: block;
    
         padding: 0 16px;
    
         text-decoration: none;
    
         color: #999;
    
       }
    
       // 实现这一点的关键是使用紧邻同胞选择器 +
    
       .list li + li {
    
         border-left: 1px solid #aaa;
    
       }
    
       .list a:hover{
    
         color: #555;
    
       }

     转载:https://mp.weixin.qq.com/s/W8mMUYIrVS9ULGFe2_XeDw

  • 相关阅读:
    ExcelDataReader read excel file
    DocumentFormat.OpenXml read excel file
    java高并发系列
    java高并发系列
    java高并发系列
    java高并发系列
    java高并发系列
    java高并发系列
    java高并发系列
    java高并发系列
  • 原文地址:https://www.cnblogs.com/taohuaya/p/11045313.html
Copyright © 2020-2023  润新知