前端js解决spring boot 枚举类返回对象的扁平化函数
const toString = Object.prototype.toString
const codeMap = new Set([
'scope',
'status',
'operatorType',
'goodsType',
'fromType',
'salaryUnit',
'defaultType'
])
// 去除对象中非必要对象
export function recurseObject(obj) {
let newObj = {}
if (!['[object Object]', '[object Array]'].includes(toString.call(obj))) {
return obj
}
if (toString.call(obj) === '[object Object]') {
for (let key in obj) {
if (toString.call(obj[key]) === '[object Object]') {
if (codeMap.has(key)) {
newObj[key] = obj[key]['name']
newObj[key + 'Code'] = obj[key]['code']
newObj[key + 'Text'] = obj[key]['text']
} else {
newObj[key] = recurseObject(obj[key])
}
} else if (toString.call(obj[key]) === '[object Array]') {
newObj[key] = map(obj[key], item => recurseObject(item))
} else {
newObj[key] = obj[key]
}
}
}
if (toString.call(obj) === '[object Array]') {
return obj.map(item => recurseObject(item))
}
return newObj
}
ObjectIn
{
scope: {
code: 1
name: "CUSTOMER"
text: "Customer"
textEn: "Customer"
}
}
ObjectOut
{
scope: "CUSTOMER",
scopeText: "CUSTOMER",
scopeCode: 1
}
网友评论