目录
1、生成随机字符串 Math.random()
const randomString = () => Math.random().toString(36).slice(2)
console.log(randomString());
2、转义html特殊字符
// 用于xss,其中一中解决方案是转义html字符串
const escape = (str) => str.replace(/[&<>"']/g, (m)=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[m]))
console.log(escape('<div class="medium">Hi Medium.</div>'));
3、将字符串中每个单词的第一个字符大写
const uppercaseWords = (str) =>str.replace(/^(.)|\s+(.)/g,(c)=>c.toUpperCase())
console.log(uppercaseWords('hello world'));
4、将字符串转换为camelCase
const toCamelCase = (str)=>str.trim().replace(/[-_\s]+(.)?/g,(_,c)=>(c?c.toUpperCase():''))
console.log(toCamelCase('background-color'));//backgroundColor
console.log(toCamelCase('_hello_word'));//HelloWord
console.log(toCamelCase('hello_word'));//helloWord
5、删除数组中的重复值
const removeDulicates = (arr)=>[...new Set(arr)]
console.log(removeDulicates([1,2,2,3,4,4,5,6]));
6、多维数组转一维数组
// 使用es6中的flat方法即可实现
//Ⅰ、flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1。
var arr = [1, 2, [3, 4]]
console.log(arr.flat());
//Ⅱ、如果我们不知道数组究竟层级有多深我们可以用Infinity关键字作为参数
console.log([1, [2, [3]]].flat(Infinity));
//Ⅲ、指定转换的嵌套层数
console.log([1, [2, [3, [4, 5]]]].flat(2)); // [1, 2, 3, [4, 5]]
7、从数组中删除虚假值
const removeFalsy = (arr) =>arr.filter(Boolean)
console.log(removeFalsy([0,'string','',NaN,true,5,undefined,false])
8、检查一个数字是奇数还是偶数
const isEven = num =>num%2===0
console.log(isEven(2));//true
console.log(isEven(1));//false
9、获取两个数字之间的随机整数
const random = (min,max) =>Math.floor(Math.random()*(max-min+1)+min)
console.log(random(1,50));
10、获取参数的的平均值
const average = (...args)=>args.reduce((a,b)=>a+b)/args.length;
console.log(average(1,2,3,4,5));
11、将数字阶段为固定小数点
const round = (n,d) =>Number(Math.round(n+"e"+d)+"e-"+d)
console.log(round(1.7777,1));//1.8
12、计算两个日期之间的不同天数
const diffDays = (date,othersDate)=>Math.ceil(Math.abs(date-othersDate)/(1000*60*60*24))
console.log(diffDays(new Date("2022-9-11"),new Date("2022-10-30")))
13、从日期中获取一年中的哪一天
const dayOfYear = (date)=>Math.floor((date-new Date(date.getFullYear(),0,0))/(1000*60*60*24))
console.log(dayOfYear(new Date()));
14、生成随机十六进制颜色
const randomColor=()=>`#${Math.random().toString(16).slice(2,8).padEnd(6,'0')}`
console.log(randomColor());
15、将rgb颜色转换为十六进制
const rgbToHex = (r,g,b)=>"#"+((1<<24)+(r<<16)+(g<<8)+b).toString(16).slice(1)
console.log(rgbToHex(255,255,255));
16、检测暗模式
const isDarkMode = window.matchMedia&&window.matchMedia('(prefers-color-scheme:dark)').matches
console.log(isDarkMode);
17、暂停一会
const pause = (millis)=>new Promise(resolve=>setTimeout(resolve,millis))
const fn= async()=>{
await pause(1000)
console.log('fatfish');
};
fn();
18、判断一个数是不是整数
const isInteger = (obj) => typeof obj === 'number' && obj % 1 === 0
console.log(isInteger(3));
console.log(isInteger('2'));
console.log(isInteger(3.345678));
19、提取字符串中的数字(去除其他)
var str = "我是12你是3-$";
console.log(str.replace(/[^0-9]/ig,""));
持续更新中.......欢迎小伙伴补充