格式化货币
该函数将数字四舍五入到两位小数,并且确保有两位小数。
function CurrencyFormatted(amount) {
var i = parseFloat(amount);
if(isNaN(i)) { i = 0.00; }
var minus = '';
if(i < 0) { minus = '-'; }
i = Math.abs(i);
i = parseInt((i + .005) * 100);
i = i / 100;
s = new String(i);
if(s.indexOf('.') < 0) { s += '.00'; }
if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
s = minus + s;
return s;
}
获取url中参数的值
function getQueryString(key) {
let reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
let result = window.location.search.substr(1).match(reg);
return result ? decodeURIComponent(result[2]) : null;
}
深度克隆
/**
* 简单Object对象的深拷贝:通过递归循环一层层进行调用
* JSON.parse(JSON.stringify)也可用于深拷贝,但是遇到undefined、function、symbol等会自动忽略
* concat、slice可以用于单层数组的深拷贝
*
* */
function deepClone(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] = deepClone(source[keys]);
} else {
targetObj[keys] = source[keys];
}
}
}
return targetObj;
}