validatePhone
function validatePhone (str) {
if (!str) return false
return /^(0|86|17951)?(13[0-9]|15[012356789]|17[0678]|18[0-9]|14[57])[0-9]{8}$/g.test(str)
}
createAsyncValidate
function createAsyncValidate (func, message, required = false, trigger = 'blur') {
return {
trigger,
validator: (rule, value, callback) {
if ((!required && value === '') || func(value) {
callback()
} else {
callback(new Error(message))
}
}
}
}
对象key 值替换
需求:后端返回的数据和前端需要的数据格式不同,例如前端用了一个组件库,不好修改
// 后端返回数据
result = [
{
value: '1',
list: [
{
value: '1-1',
list: []
}
]
}
]
// 前端想将数据中的 value 替换成 label,list 替换成 child,其中 list 不确定有几层
function transformData (arr) {
return arr.map(item => {
if (Array.isArray(item.list) {
return {
label: item.value,
child: transformData(item.list)
}
} else {
return {
label: item.value
}
}
}
}
对象数组去重 (对象中没有函数)
const arr = Array.from(new Set(arr.map(item => JSON.stringfy(item))).map(item => JSON.parse(item)