常用的的JS方法

91 阅读1分钟

对象数组去重

let arr = [
  { id: 1, name: 'jack' },
  { id: 2, name: 'rose' },
  { id: 1, name: 'jack' },
];
function duplicateById(arr) {
  let filterMap = arr.reduce((pre, cur) => {
    return pre.set(cur.id, cur);
  }, new Map()); // 主要使用了map的set方法和value方法
  return [...filterMap.values()];
}
duplicateById(arr);// [{"id":1,"name":"jack"},{"id":2,"name":"rose"}]

页面重新加载

location.reload()

页面回滚到顶部

window.scrollTo(0, 0);

页面全屏和退出全屏

// 全屏
function fullScreen() {
  const el = document.documentElement;
  const rfs =
    el.requestFullScreen ||
    el.webkitRequestFullScreen ||
    el.mozRequestFullScreen ||
    el.msRequestFullscreen;
  if (typeof rfs != 'undefined' && rfs) {
    rfs.call(el);
  }
}

// 退出全屏
function exitScreen() {
    if (document.exitFullscreen) { 
        document.exitFullscreen()
    } 
    else if (document.mozCancelFullScreen) { 
        document.mozCancelFullScreen()
    } 
    else if (document.webkitCancelFullScreen) { 
        document.webkitCancelFullScreen()
    } 
    else if (document.msExitFullscreen) { 
        document.msExitFullscreen()
    } 
    if(typeof cfs != "undefined" && cfs) {
        cfs.call(el)
    }
}

变量为真时执行某函数

(flag) && fn()

缩短console.log

const c = console.log.bind(document)
c(123) // 123

值转为布尔值

!!undefined; // false
!!'996'; // true
!!null; // false
!!NaN; // false

求数组最大值

Math.max.apply(null, array)

BOM

协议和主机ip

// 协议
window.location.protocol
// 主机
window.location.host