面试加工厂

ali-笔试

2021-04-19  本文已影响0人  斗伽
// 获取dom距离顶部的距离
const getPosition = el => {
  if (!el) return false;
  var rect = el.getBoundingClientRect();
  //获取元素距离文档顶部的距离
  var top =
    rect.top +
    (window.pageYOffset || document.documentElement.scrollTop) -
    (document.documentElement.clientTop || 0);
  var left =
    rect.left +
    (window.pageXOffset || document.documentElement.scrollLeft) -
    (document.documentElement.clientLeft || 0);

  return {
    top,
    left
  };
};

const compareVersion = function(version1, version2) {
  let verision1Arr = version1.split(".");
  let verision2Arr = version2.split(".");
  let maxLen =
    verision1Arr.length > verision2Arr.length
      ? verision1Arr.length
      : verision2Arr.length;

  for (let i = 0; i < maxLen; i++) {
    let p1 = verision1Arr[i] >> 0 || 0;
    let p2 = verision2Arr[i] >> 0 || 0;
    if (p1 > p2) {
      return 1;
    } else if (p1 < p2) {
      return -1;
    }
  }
  return 0;
};

const decodeString = s => {
  let numStack = [];
  let strStack = [];
  let num = 0;
  let result = "";
  for (const char of s) {
    if (!isNaN(char)) {
      num = num * 10 + Number(char);
    } else if (char == "[") {
      strStack.push(result);
      result = "";
      numStack.push(num);
      num = 0;
    } else if (char == "]") {
      let repeatTimes = numStack.pop();
      result = strStack.pop() + result.repeat(repeatTimes);
    } else {
      result += char;
    }
  }
  return result;
};
上一篇下一篇

猜你喜欢

热点阅读