美文网首页前端面试之路
「JavaScript」 基础知识要点及常考面试题(四)---[

「JavaScript」 基础知识要点及常考面试题(四)---[

作者: ybrelax | 来源:发表于2019-03-16 17:28 被阅读0次
    1. javascript 数组怎么去重

    方法1:
    一般去除重复我喜欢采用 new Set() 因为set集合是不支持重复的
    确定,不能过滤复杂的数组(对象数组)

    let person = [1,2,3,1,2]
    let arr = Array.from(new Set(person)))
    

    方法2: 运用js的reduce()方法 具体介绍

    let person = [
         {id: 0, name: "小明"},
         {id: 1, name: "小张"},
         {id: 2, name: "小李"},
         {id: 3, name: "小孙"},
         {id: 1, name: "小周"},
         {id: 2, name: "小陈"},   
    ];
    let obj = {};
    person = person.reduce((cur,next) => {
        console.log(obj[next.id], next.name);
        obj[next.id] ? "" : obj[next.id] = true && cur.push(next);
        return cur;
    },[]) //设置cur默认类型为数组,并且初始值为空的数组
    console.log(person);
    
    1. 有 1 到 10000 共 10000 个数,如果我从中随机拿走一个数,你如何知道我拿走了哪个?

    方式一:相加
    1 ~ 10000个数相加然后减去随机拿走后的1 ~ 9999个数即可得出拿走的那个数。
    方式二:相乘
    1 ~ 10000个数相乘除以随机拿走后的1 ~ 9999个数即可得出拿走的那个数。

    1. 请写出一个获取数组最大值的函数
    let arr = [2, 10, 11, 3, 5];
    let max = arr.reduce((pre, next) => {
        return Math.max(pre, next)
    })
    max = Math.max.apply(Math, arr)
    max = Math.max(...arr)
    max = Reflect.apply(Math.max, Math, arr)
    console.log(max);
    
    1. [请写出一个秒转时分秒的函数。hh:mm:ss格式。
     function getTime(num) {
         const hours = Math.floor(num / 3600);
         const minutes = Math.floor(num / 60 % 60);
         const seconds = Math.floor(num % 60);
         return `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`
     }
    
     function getTime1(num) {
        const hours = Math.floor(num / 3600);
        const minutes = Math.floor(num / 60 % 60);
        const seconds = Math.floor(num % 60);
        return [hours, minutes, seconds].map(val => {
            return `${String(val).padStart(2, '0')}`
        }).join(':')
     }
    
    1. 已知年月,求该月共多少天?
    function getDays (year, month) {
        return new Date(year, month + 1, 0).getDate()
    }
    
    1. 获取URL参数
    export const getUrlParam =(name:string)=> {
      const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
      const r = windwo.location.search.substr(1).match(reg);
      return r ? decodeURI(r[2]) : null;
    }
    

    相关文章

      网友评论

        本文标题:「JavaScript」 基础知识要点及常考面试题(四)---[

        本文链接:https://www.haomeiwen.com/subject/qgbnpqtx.html