对象工具类详解编程语言

备注:如果let报错,可以修改为var,尤其是IE浏览器

/** 
* @author: 苗士军 
* @description 对象工具类 
*/ 
ObjectUtils = { 
/** 
* @description 对象转参数 
* @param object 
* @return {string} 
*/ 
objectToParam: function (object) { 
let param = ""; 
for (let key in object) { 
if (param == "") { 
param = param + key + "=" + object[key]; 
} 
else { 
param = param + "&" + key + "=" + object[key]; 
} 
} 
return param; 
}, 
/** 
* @description 复制对象 
* @param: object 
* @return: 复制后对象 
*/ 
copyObject: function (object) { 
return JSON.parse(JSON.stringify(object)); 
}, 
/** 
* @description 将对象属性赋值给模板{{}} 
* @param template 
* @param object 
* @return 模板后数据 
*/ 
renderTemplate: function (template, object) { 
return template.replace(//{/{(.+?)/}/}/g, function (m, m1) { 
return object[m1] 
}) 
}, 
/** 
* @description 判断对象是否为空 
* @param object 
* @return {boolean} 
*/ 
isEmpty: function (object) { 
return JSON.stringify(object) == "{}"; 
}, 
/** 
* @description 获取对象key值集合 
* @param object 
* @return {Array} 
*/ 
getKeys: function (object) { 
let arr = []; 
if (!this.isEmpty(object)) { 
try { 
arr = Object.keys(object); 
} catch (e) { 
for (var key in object) { 
arr.push(key); 
} 
} 
} 
return arr; 
}, 
/** 
* @description 获取对象value值集合 
* @param object 
* @return {Array} 
*/ 
getValues: function (object) { 
let arr = []; 
if (!this.isEmpty(object)) { 
try { 
arr = Object.values(object); 
} catch (e) { 
for (var key in object) { 
arr.push(object["" + key]); 
} 
} 
} 
return arr; 
}, 
/** 
* @description 合并对象 
* @param obj1 
* @param obj2 obj2 中的属性会覆盖掉 obj1 
* @return {*} 
*/ 
assignObject: function (obj1, obj2) { 
if (this.isEmpty(obj1) && this.isEmpty(obj2)) { 
return {}; 
} 
try { 
Object.assign(obj1, obj2); 
} catch (e) { 
for (var key in obj2) { 
obj1[key] = obj2[key]; 
} 
} 
return obj1; 
}, 
/** 
* @description 选择对象中的一个(多个)属性 
* @param object 
* @param keys 
* @return {{}} 
*/ 
getKeysProperties: function (object, keys) { 
if (this.isEmpty(object)) { 
return {}; 
} 
if (!Array.isArray(keys)) { 
keys = [keys]; 
} 
let obj = {}; 
keys.reduce(function (a, c, i) { 
obj[c] = object[c] 
}, ""); 
return obj; 
}, 
/** 
* @description 选择对象中的一个(多个)属性 
* @param object 
* @param keys 
* @return {{}} 
*/ 
deleteKeysProperties: function (object, keys) { 
if (this.isEmpty(object)) { 
return {}; 
} 
if (!Array.isArray(keys)) { 
keys = [keys]; 
} 
let arr = this.getKeys(object); 
let obj = {}; 
arr.filter(a = > keys.indexOf(a) < 0 
). 
reduce(function (a, c, i) { 
obj[c] = object[c] 
}, ""); 
return obj; 
}, 
/** 
* @description 获取对象的属性值 
* @param object 
* @param key 
* @param ignoreCase,默认true 
* @return {*} 
*/ 
getKeyPropertie: function (object, key, ignoreCase) { 
let value = null; 
if (this.isEmpty(object)) { 
return value; 
} 
ignoreCase = ignoreCase == undefined ? true : ignoreCase; 
for (let k in object) { 
if (ignoreCase) { 
if (k.toString().toUpperCase() == key.toString().toUpperCase()) { 
value = object[k]; 
} 
} 
else { 
if (k == key) { 
value = object[k]; 
} 
} 
} 
return value; 
}, 
/** 
* @description 清空对象属性 
* @param object 
* @param keys 
* @return 
*/ 
clearObject: function (object, keys) { 
if (!this.isEmpty(object)) { 
keys = keys == undefined ? object.getKeys() : keys; 
if (!Array.isArray(keys)) { 
keys = [keys]; 
} 
keys.reduce(function (a, c, i) { 
object[c] = ''; 
}, ''); 
} 
} 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/18089.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论