1. // 判断是否含有汉字
export const hasChinese = (str) => {
const reg = /[\u4E00-\u9FA5]/g;
return reg.test(str);
};
2. // 判断是否为数字
export const isNumber = (str) => {
const reg = /^(-?\d+)(\.\d+)?$/;
return reg.test(str);
};
3. 判断是不是闰年
function isRunyear(year){ //判断是不是闰年
var flag = false;
if (year%4 == 0 && year%100 !=0 || year%400 == 0){
flag = true;
}
return flag;
}
4. 数组相同元素累加
const sameKeySummataion = (arr, matchKey) => {
let obj = {}
arr.forEach((item) => {
for (let key in item) {
if (matchKey.indexOf(key) !== -1) {
let value = item[key]
if (isNumber(value)) {
key in obj ? (obj[key] += Number(value)) : (obj[key] = Number(value))
}
}
}
})
// 这一步可省略 这里为了保留最终数据都包含两位小数点
for (var i in obj) {
obj[i] = obj[i].toFixed(2)
}
return obj
}
4.根据某个相同的值 合并组成新的数组
// data 是原数组
sameValueConcat(data) {
let dataInfo = {}
data.forEach((item, index) => {
let { cityname } = item
if (!dataInfo[cityname ]) {
dataInfo[cityname] = {
cityname ,
children: [],
}
}
dataInfo[cityname].children[] = item
})
let list = Object.values(dataInfo)
return list
},
原数组
arr = [
{cityname: "上海市", area: "松江区", areaId: 123 },
{cityname: "上海市", area: "静安区", areaId: 456 },
{cityname: "上海市", area: "闵行区", areaId: 789 },
{cityname: "武汉市", area: "洪山区", areaId: 321 },
{cityname: "武汉市", area: "江夏区", areaId: 654 },
{cityname: "武汉市", area: "武昌区", areaId: 987 },
]
转换成的新数组
newData=[
{
cityname: "上海市",
children: [
{area: "松江区", areaId: 123 },
{area: "静安区", areaId: 456 },
{area: "闵行区", areaId: 789 },
],
},
{
cityname: "武汉市",
children: [
{area: "洪山区", areaId: 321 },
{area: "江夏区", areaId: 654 },
{area: "武昌区", areaId: 987 },
],
},
],
5.// 通用脱敏 后端返回的手机需要加星号
Desensitization(str, beginLen, endLen) {
let len = str.length;
let firstStr = str.substr(0, beginLen);
let lastStr = str.substr(endLen);
let middleStr = str.substring(beginLen, len - Math.abs(endLen)).replace(/[\s\S]/ig, '*');
let finalStr = firstStr + middleStr + lastStr;
return finalStr;
}
console.log(Desensitization('18212346789', 3, -4)) // 182****6789
6.// 将数组分成多少个小数组 arr是原数组 length是想分的长度
setDivison(arr,length){
let index = 0
let newArray = []
while (index < arr.length) {
newArray.push(arr.slice(index, (index += length)))
}
return newArray
}