一、对象数组去重
// 根据id去筛选
function deWeightThree (arr){
let map = new Map();
for (let item of arr) {
if (!map.has(item.id)) {
map.set(item.id, item);
}
}
return [...map.values()];
},
二、对数组排序(比如对时间序列排序)
sortarr(arr) {
var arrsort = arr.sort(); //对原数组进行排序,纯字符串可以用这个
var newarr = []; //新建空数组
newarr.push(arrsort[0]); //将排序后数值的第一项给添加到新数组
for (var i = 1; i < arrsort.length; i++) {
//遍历排序后的数组
if (arrsort[i] != newarr[newarr.length - 1]) {
newarr.push(arrsort[i]);
}
//若当前项与新数组最后一项不同,这添加到新数组
}
return newarr; //返回新数组
},
三、对导出文件命名后缀
createName() {
let now = new Date();
let year = now.getFullYear(); //得到年份
let month = now.getMonth(); //得到月份
let date = now.getDate(); //得到日期
let hour = now.getHours(); //得到小时
let minu = now.getMinutes(); //得到分钟
month = month + 1;
if (month < 10) month = "0" + month;
if (date < 10) date = "0" + date;
let number = now.getSeconds() % 43; //这将产生一个基于目前时间的0到42的整数。
let time = year + month + date + hour + minu;
return time + "0" + number;
},
四、对时间处理,得到一个月前、半个月前、一年前的时间点
getDate(type = null, number = 0) {
var nowdate = new Date();
switch (type) {
case "day": //取number天前、后的时间
nowdate.setTime(nowdate.getTime() + 24 * 3600 * 1000 * number);
var y = nowdate.getFullYear();
var month = nowdate.getMonth() + 1;
var m = month < 10 ? "0" + month : month;
var day = nowdate.getDate();
var d = day < 10 ? "0" + day : day;
var retrundate = `${y}-${m}-${d}`;
break;
case "week": //取number周前、后的时间
var weekdate = new Date(nowdate + 7 * 24 * 3600 * 1000 * number);
var y = weekdate.getFullYear();
var month = nowdate.getMonth() + 1;
var m = month < 10 ? "0" + month : month;
var day = nowdate.getDate();
var d = day < 10 ? "0" + day : day;
var retrundate = `${y}-${m}-${d}`;
break;
case "month": //取number月前、后的时间
nowdate.setMonth(nowdate.getMonth() + number);
var y = nowdate.getFullYear();
var month = nowdate.getMonth() + 1;
var m = month < 10 ? "0" + month : month;
var day = nowdate.getDate();
var d = day < 10 ? "0" + day : day;
var retrundate = `${y}-${m}-${d}`;
break;
case "year": //取number年前、后的时间
nowdate.setFullYear(nowdate.getFullYear() + number);
var y = nowdate.getFullYear();
var month = nowdate.getMonth() + 1;
var m = month < 10 ? "0" + month : month;
var day = nowdate.getDate();
var d = day < 10 ? "0" + day : day;
var retrundate = `${y}-${m}-${d}`;
break;
default: //取当前时间
var y = nowdate.getFullYear();
var month = nowdate.getMonth() + 1;
var m = month < 10 ? "0" + month : month;
var day = nowdate.getDate();
var d = day < 10 ? "0" + day : day;
var retrundate = `${y}-${m}-${d}`;
}
return retrundate;
},
使用
五、 得到当前数组的键数组
function formatColumns(arr) {
if (arr.length > 0) {
let columns = [];
arr.forEach((item) => {
console.log(Object.getKeys(item));
});
}
}
六、对一维数组去重
// 利用数组中的filter方法
function arraySet(arr){
let newArr = arr.filter(function(value,index,self){
return self.indexOf(value) === index;
});
return newArr
}
后续继续更新…