点击查看代码
export function getWeekDate() {
var now = new Date();
var day = now.getDay();
var weeks = new Array("周日", "周一", "周二", "周三", "周四", "周五", "周六");
var week = weeks[day];
return week;
}
export function formatDate(date, str) {
date = new Date(date);
str = str ? str : "yyyy/MM/dd hh:mm:ss";
if (/(y+)/.test(str)) {
str = str.replace(RegExp.$1, String(date.getFullYear()).substr(4 - RegExp.$1.length));
}
let o = {
"M+": date.getMonth() + 1,
"d+": date.getDate(),
"h+": date.getHours(),
"m+": date.getMinutes(),
"s+": date.getSeconds(),
};
for (let k in o) {
if (new RegExp(`(${k})`).test(str)) {
let stry = String(o[k]);
str = str.replace(RegExp.$1, RegExp.$1.length === 1 ? stry : ("00" + stry).substr(stry.length));
}
}
return str;
}
export function List(params) {
let arr = [];
let obj = {};
arr = params.reduce(function (prev, cur) {
if (!obj.hasOwnProperty(cur.id)) {
prev.push(cur);
}
obj[cur.id] = true;
return prev;
}, []);
return arr;
}
export function unique(arr, key) {
var res = new Map();
return arr.filter(function (a) {
return !res.has(a[key]) && res.set(a[key], 1);
});
}
export function uniqueArray(arr = [], key) {
const keyValues = new Set();
let val;
return arr.filter((obj) => {
val = obj[key];
if (keyValues.has(val)) {
return false;
}
keyValues.add(val);
return true;
});
}
export function sortBy(attr, rev) {
if (rev == undefined) {
rev = 1;
} else {
rev = rev ? 1 : -1;
}
return function (a, b) {
a = Number(a[attr]);
b = Number(b[attr]);
if (a < b) {
return rev * -1;
}
if (a > b) {
return rev * 1;
}
return 0;
};
}
export function dataType(obj) {
var toString = Object.prototype.toString;
var map = {
"[object Boolean]": "boolean",
"[object Number]": "number",
"[object String]": "string",
"[object Function]": "function",
"[object Array]": "array",
"[object Date]": "date",
"[object RegExp]": "regExp",
"[object Undefined]": "undefined",
"[object Null]": "null",
"[object Object]": "object",
};
return map[toString.call(obj)];
}
export const fromInit = (form) => {
let formData = new FormData();
for (const key in form) {
if (form[key] instanceof Array) {
form[key].forEach((val) => {
formData.append(key, val);
});
} else {
formData.append(key, form[key]);
}
}
return formData;
};
export function spliceData(data, number = 24) {
let num = Math.ceil(data.length / number);
let remainder = data.length % number;
let newData = [];
for (let i = 0; i < num; i++) {
if (i === 2 && remainder !== 0) continue;
if (i < 1) {
newData.push(data.slice(i, i + number));
continue;
}
newData.push(data.slice(i * number, (i + 1) * number));
}
return newData;
}
export function isrecursion(arr) {
let res = [];
let fn = (source) => {
source.forEach((el) => {
res.push(el);
el.Children && el.Children.length > 0 ? fn(el.Children) : "";
});
};
fn(arr);
return res;
}
export function debounce(fn, delay = 2000) {
let time = null;
return function () {
if (time !== null) {
clearTimeout(time);
}
time = setTimeout(() => {
fn.call(this);
}, delay);
};
}
export function excelDataFormat(json, forma) {
let data = [];
for (let i = 0; i < json.length; i++) {
const jd = json[i];
let obj = {};
for (const key in forma) {
if (forma[key] == "Results") {
obj[key] = jd[forma[key]] ? "达标" : "未达标";
} else if (forma[key] == "AnswerType") {
obj[key] =
jd[forma[key]] == "1"
? "纯文本"
: jd[forma[key]] == "2"
? "URL链接"
: jd[forma[key]] == "3"
? "图片信息"
: jd[forma[key]] == "4"
? "视频音频信息"
: "链接与描述";
} else if (forma[key] == "I") {
obj[key] = jd[forma[key]] == "-1" ? "--" : jd[forma[key]];
} else {
obj[key] = jd[forma[key]] ? jd[forma[key]] : "";
}
}
data.push(obj);
}
return data;
}
export function tree(treeData) {
let result = [];
treeData.forEach((item) => {
let res = JSON.parse(JSON.stringify(item));
delete res.children;
result.push(res);
if (item.children && item.children.length > 0) {
result = result.concat(flatTree(item.children));
}
});
return result;
}
export function deepClone(data, isDeep) {
let obj = {};
if (data instanceof Array) {
obj = [];
}
for (const key in data) {
let value = data[key];
obj[key] = !!isDeep && typeof value === "object" && value !== null ? deepClone(value, isDeep) : value;
}
return obj;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?