Js常用的函式

Cassie1492949236626發表於2018-04-28

格式化貨幣

該函式將數字四捨五入到兩位小數,並且確保有兩位小數。

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;
}
複製程式碼

相關文章