不定期更新
let util = {};
/**
* 获取指定数组指定key对应的值比较,若相等则返回该value值
* @param arr Array 需要遍历的数组
* @param id string 需要对比值的
* @param find String 等待对比的值,默认对比id
* @param result String 等待对比成功后返回的值,默认value
*/
util.getResult = function (arr = [], id = '', find = 'id', result = 'value') {
let value = '';
if (id === undefined || id === null || !find || !result) {return '';}
arr.map(function (e) {
if (e[find] === id) {value = e[result]; }
});
return value;
};
/**
* 字符串 去 前后空格
* @param {*} str 字符串
*/
util.trim = function (str = '') {
if (!str || str === undefined || str === null || typeof str !== 'string') { return ''}
return str.replace(/(^\s*)|(\s*$)/g, '')
};
/**
* 为数字加上单位:万
*
* 例如:
* 1000.01 => 1000.01
* 10000 => 1万
* 99000 => 9.9万
* 566000 => 56.6万
* 5660000 => 566万
* 44440000 => 4444万
* 11111000 => 1111.1万
*
* @param {number} input 输入数字.
*/
util.NumberUpperFormat = function (input) {
// 精确到整数,直接用js自带方法input.toFixed(0)也可以
if (input >= 10000) {
const num = input / 10000;
return `${num.toFixed(2)}万`;
} else {
let v = input;
if (v == '' || v == null || v == undefined) {return v;}
return v.toFixed(2);
}
};
/**
* 深拷贝
* @param source Array/Object 对象/数组
*/
util.deepClone = function (source){
const targetObj = source.constructor === Array ? [] : {}; // 判断复制的目标是数组还是对象
for(let keys in source){ // 遍历目标
if(source.hasOwnProperty(keys)){
if(source[keys] && typeof source[keys] === 'object'){ // 如果值是对象,就递归一下
targetObj[keys] = source[keys].constructor === Array ? [] : {};
targetObj[keys] = util.deepClone(source[keys]);
}else{ // 如果不是,就直接赋值
targetObj[keys] = source[keys];
}
}
}
return targetObj;
};
export default util;