1. 计算两个日期之间的间隔
const dayDif = (date1, date2) => Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000)
dayDif(new Date("2021-11-3"), new Date("2022-2-1")) // 90
2. 时间格式化
const timeFromDate = date => date.toTimeString().slice(0, 8);
timeFromDate(new Date(2021, 11, 2, 12, 30, 0)); // 12:30:00
timeFromDate(new Date()); // 返回当前时间 09:00:00
3.字符串首字母大写
const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1)
capitalize("hello world") // Hello world
4.翻转字符串
const reverse = str => str.split('').reverse().join('');
reverse('hello world'); // 'dlrow olleh'
5.随机字符串
const randomString = () => Math.random().toString(36).slice(2);
randomString();
6.获得一组数的平均值
const average = (...args) => args.reduce((a, b) => a + b) / args.length;
average(1, 2, 3, 4, 5); // 3
7.获取两个整数之间的随机整数
const random = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
random(1, 50);
8.变量交换
[foo, bar] = [bar, foo];
9.获取变量的类型
const trueTypeOf = (obj) => Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();
trueTypeOf(''); // string
trueTypeOf(0); // number
trueTypeOf(); // undefined
trueTypeOf(null); // null
trueTypeOf({}); // object
trueTypeOf([]); // array
trueTypeOf(0); // number
trueTypeOf(() => {}); // function
10.字符串转数字类型向下取整
~~3.1415 //3
~~'5.567'//5
11.filter数组去重
let arr = ['a', 'b', 'c', 'c', 'd', 'd']
let arrALL=arr.filter(function(item,index){
return arr.indexOf(item)==index
})
console.log(arrALL)//a,b,c,d
var arr=[
{
name:'ti',
id:1,
},
{
name:'yu',
id:2,
},
{
name:'yu',
id:3,
},
{
name:'ti',
id:4,
}
]
let myArr=[] // 对象的某个属性放入临时数组,对比临时数组中元素所在对象的索引,
// 多个对象可push多个,均不相同return ..&&.. 有一不同 return ..||..
arr.forEach(item2=>{
myArr.push(item2.name)
})
let arrAll=arr.filter(function(item,index){
return myArr.indexOf(item.name)===index
})