前端开发中常用的工具函数
1. 数组相关
1.1 判断数组是否为空
/**
* @description 判断数组是否为空
* @param {Array} arr - 待判断的数组
* @returns {Boolean} - 返回布尔值,true表示数组为空,false表示数组不为空
*/
function isArrayEmpty(arr) {
return !Array.isArray(arr) || arr.length === 0;
}
1.2 数组去重
/**
* @description 数组去重
* @param {Array} arr - 待去重的数组
* @returns {Array} - 返回去重后的新数组
*/
function uniqueArray(arr) {
if (!Array.isArray(arr)) {
return arr;
}
return [...new Set(arr)];
}
2. 字符串相关
2.1 判断字符串是否为空
/**
* @description 判断字符串是否为空
* @param {String} str - 待判断的字符串
* @returns {Boolean} - 返回布尔值,true表示字符串为空,false表示字符串不为空
*/
function isStringEmpty(str) {
return !str || str.trim().length === 0;
}
2.2 字符串首字母大写
/**
* @description 字符串首字母大写
* @param {String} str - 待转换的字符串
* @returns {String} - 返回首字母大写后的新字符串
*/
function capitalize(str) {
if (!str) {
return str;
}
return str.charAt(0).toUpperCase() + str.slice(1);
}
3. 对象相关
3.1 判断对象是否为空
/**
* @description 判断对象是否为空
* @param {Object} obj - 待判断的对象
* @returns {Boolean} - 返回布尔值,true表示对象为空,false表示对象不为空
*/
function isObjectEmpty(obj) {
return !obj || Object.keys(obj).length === 0;
}
3.2 深拷贝对象
/**
* @description 深拷贝对象
* @param {Object} obj - 待拷贝的对象
* @returns {Object} - 返回拷贝后的新对象
*/
function deepClone(obj) {
if (typeof obj !== 'object' || obj === null) {
return obj;
}
let result;
if (Array.isArray(obj)) {
result = [];
for (let i = 0; i < obj.length; i++) {
result[i] = deepClone(obj[i]);
}
} else {
result = {};
for (let key in obj) {
result[key] = deepClone(obj[key]);
}
}
return result;
}
4. 数字相关
4.1 生成指定范围内的随机整数
/**
* @description 生成指定范围内的随机整数
* @param {Number} min - 随机整数的最小值
* @param {Number} max - 随机整数的最大值
* @returns {Number} - 返回生成的随机整数
*/
function randomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
4.2 数字千分位格式化
/**
* @description 数字千分位格式化
* @param {Number} num - 待格式化的数字
* @returns {String} - 返回格式化后的字符串
*/
function formatNumber(num) {
return num.toString().replace(/\d{1,3}(?=(\d{3})+$)/g, '$&,');
}
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。