数据处理
手写扁平化处理,Array.flatten
let arr = [1,[2,3],[45,[99]]]
flatten(arr){
let res = []
for(let i=0; i<arr.length;i++){
if(Array.isArray(arr[i])){
res= res.concat(this.flatten(arr[i]))
}else{
res.push(arr[i])
}
}
return res
}
获取当前url并做处理
var url = window.location.href;
var host = window.location.host;
var port = window.location.port;
var pathname = window.location.pathname;
var URL = document.URL;
var search = window.location.search;
var search = window.location.search;
var age = getSearchString('age', search);
var id = getSearchString('id', search);
function getSearchString(key, Url) {
var str = Url;
str = str.substring(1, str.length);
var arr = str.split("&");
var obj = new Object();
for (var i = 0; i < arr.length; i++) {
var tmp_arr = arr[i].split("=");
obj[decodeURIComponent(tmp_arr[0])] = decodeURIComponent(tmp_arr[1]);
}
return obj[key];
}
深拷贝
function deepClone(obj, hash = new WeakMap()) {
if (obj === null) return obj;
if (obj instanceof Date) return new Date(obj);
if (obj instanceof RegExp) return new RegExp(obj);
if (typeof obj !== "object") return obj;
if (hash.get(obj)) return hash.get(obj);
let cloneObj = new obj.constructor();
hash.set(obj, cloneObj);
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
cloneObj[key] = deepClone(obj[key], hash);
}
}
return cloneObj;
}
浅拷贝
function shallowClone(obj) {
const newObj = {};
for(let prop in obj) {
if(obj.hasOwnProperty(prop)){
newObj[prop] = obj[prop];
}
}
return newObj;
}