도구 함수 봉인: 깊이 획득 대상의 값, 깊이 복사 대상, 수조 대상의 중복 제거 대상, 핸드폰 번호 검증, 소수점 얻기

1634 단어 도구 함수
// (1)          
const deepGet = (object, path, defaultValue) => {
  return (!Array.isArray(path) ? path.replace(/\[/g, '.').replace(/\]/g, '').split('.') : path)
          .reduce((o, k) => (o || {})[k], object) || defaultValue;
}

// (2)      
const isValidPhone = (str) => {
  var myreg = /^[1][3,4,5,7,8][0-9]{9}$/;
  if (!myreg.test(str)) {
    return false;
  } else {
    return true;
  }
}

// (3)    
const toFix = (num1, num2) => {
  if(typeof(num1)=='undefined'){
      return num1
  }else{
      return Number(num1.toFixed(num2))
  }
}

/**
 * 
 * @param {*Object} obj (4)            
 */
const deteleObject = (obj) => {
  var uniques = [];
  var stringify = {};
  for (var i = 0; i < obj.length; i++) {
      var keys = Object.keys(obj[i]);
      keys.sort(function(a, b) {
          return (Number(a) - Number(b));
      });
      var str = '';
      for (var j = 0; j < keys.length; j++) {
          str += JSON.stringify(keys[j]);
          str += JSON.stringify(obj[i][keys[j]]);
      }
      if (!stringify.hasOwnProperty(str)) {
          uniques.push(obj[i]);
          stringify[str] = true;
      }
  }
  uniques = uniques;
  return uniques;
}


/**
 * 
 * @param {*Array} arr (5)       
 */
function deepCopy(arr) {
  let copyArr = (arr.constructor === Array) ? [] : {}; //          
  for(let i in arr) {
      if(typeof arr[i] === 'object') {   //             
          copyArr[i] = deepCopy(arr[i]);  //             
      } else {
          copyArr[i] = arr[i];  //        
      }
  }
  return copyArr;
}

좋은 웹페이지 즐겨찾기