返回
前端开发项目必备代码片段(一)
前端
2023-09-17 10:20:00
utils/
--index.js
作为一名前端开发人员,在日常开发过程中积累了很多有用的代码片段。这些代码片段可以帮助我们提高开发效率,减少重复性工作。因此,我决定将其整理成一个系列文章,与大家分享。
在本系列文章中,我将介绍一些常用的工具函数。这些函数可以帮助我们处理各种常见的问题,如字符串操作、数组操作、日期操作等。希望这些函数能对大家的开发工作有所帮助。
字符串操作
/**
* 去除字符串两端的空格
* @param {string} str 要处理的字符串
* @returns {string} 去除空格后的字符串
*/
const trim = (str) => {
return str.replace(/^\s+|\s+$/g, "");
};
/**
* 将字符串中的所有空格替换为指定字符
* @param {string} str 要处理的字符串
* @param {string} char 要替换成的字符
* @returns {string} 替换空格后的字符串
*/
const replaceAllSpaces = (str, char) => {
return str.replace(/\s/g, char);
};
/**
* 将字符串中的所有指定字符替换为另一个字符
* @param {string} str 要处理的字符串
* @param {string} from 要替换的字符
* @param {string} to 替换成的字符
* @returns {string} 替换字符后的字符串
*/
const replaceAll = (str, from, to) => {
return str.replace(new RegExp(from, "g"), to);
};
/**
* 将字符串中的所有字母转换为小写
* @param {string} str 要处理的字符串
* @returns {string} 小写后的字符串
*/
const toLowerCase = (str) => {
return str.toLowerCase();
};
/**
* 将字符串中的所有字母转换为大写
* @param {string} str 要处理的字符串
* @returns {string} 大写后的字符串
*/
const toUpperCase = (str) => {
return str.toUpperCase();
};
数组操作
/**
* 从数组中删除指定元素
* @param {array} arr 要处理的数组
* @param {*} item 要删除的元素
* @returns {array} 删除元素后的数组
*/
const remove = (arr, item) => {
return arr.filter((x) => x !== item);
};
/**
* 从数组中删除所有重复元素
* @param {array} arr 要处理的数组
* @returns {array} 删除重复元素后的数组
*/
const unique = (arr) => {
return [...new Set(arr)];
};
/**
* 将两个数组合并成一个数组
* @param {array} arr1 第一个数组
* @param {array} arr2 第二个数组
* @returns {array} 合并后的数组
*/
const concat = (arr1, arr2) => {
return arr1.concat(arr2);
};
/**
* 将数组中的每个元素都乘以一个指定数字
* @param {array} arr 要处理的数组
* @param {number} num 要乘以的数字
* @returns {array} 乘法后的数组
*/
const multiply = (arr, num) => {
return arr.map((x) => x * num);
};
/**
* 将数组中的每个元素都除以一个指定数字
* @param {array} arr 要处理的数组
* @param {number} num 要除以的数字
* @returns {array} 除法后的数组
*/
const divide = (arr, num) => {
return arr.map((x) => x / num);
};
日期操作
/**
* 获取当前日期
* @returns {Date} 当前日期
*/
const now = () => {
return new Date();
};
/**
* 获取当前时间戳
* @returns {number} 当前时间戳
*/
const timestamp = () => {
return Date.now();
};
/**
* 将日期格式化为字符串
* @param {Date} date 要格式化的日期
* @param {string} format 格式化字符串
* @returns {string} 格式化后的字符串
*/
const formatDate = (date, format) => {
const map = {
yyyy: date.getFullYear(),
MM: date.getMonth() + 1,
dd: date.getDate(),
HH: date.getHours(),
mm: date.getMinutes(),
ss: date.getSeconds(),
};
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, (match) => map[match]);
};
/**
* 将字符串解析为日期
* @param {string} str 要解析的字符串
* @returns {Date} 解析后的日期
*/
const parseDate = (str) => {
return new Date(str);
};
/**
* 将日期增加指定天数
* @param {Date} date 要增加天数的日期
* @param {number} days 要增加的天数
* @returns {Date} 增加天数后的日期
*/
const addDays = (date, days) => {
date.setDate(date.getDate() + days);
return date;
};
/**
* 将日期减少指定天数
* @param {Date} date 要减少天数的日期
* @param {number} days 要减少的天数
* @returns {Date} 减少天数后的日期
*/
const subtractDays = (date, days) => {
date.setDate(date.getDate() - days);
return date;
};