도구 함수 봉인: 깊이 획득 대상의 값, 깊이 복사 대상, 수조 대상의 중복 제거 대상, 핸드폰 번호 검증, 소수점 얻기
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;
}