// 判断是否为空
const validateNull = val => {
if (typeof val == 'boolean') {
return false;
}
if (typeof val == 'number') {
return false;
}
if (val instanceof Array) {
if (val.length == 0) return true;
} else if (val instanceof Object) {
if (JSON.stringify(val) === '{}') return true;
} else {
if (val == 'null' || val == null || val == 'undefined' || val == undefined || val == '')
return true;
return false;
}
return false;
};
// 根据字典的value显示label
const findByValue = (dic, value) => {
let result = '';
if (validateNull(dic)) return value;
if (typeof value == 'string' || typeof value == 'number' || typeof value == 'boolean') {
let index = 0;
index = findArray(dic, value);
if (index != -1) {
result = dic[index].label;
} else {
result = value;
}
} else if (value instanceof Array) {
result = [];
let index = 0;
value.forEach(ele => {
index = findArray(dic, ele);
if (index != -1) {
result.push(dic[index].label);
} else {
result.push(value);
}
});
result = result.toString();
}
return result;
};
// 根据字典的value查找对应的index
const findArray = (dic, value) => {
for (let i = 0; i < dic.length; i++) {
if (dic[i].value == value) {
return i;
}
}
return -1;
};
使用方法:
let data = [
{
id: '1123598814738675228',
parentId: '1123598814738675227',
code: 'org_category',
value: 1,
label: '公司',
sort: 1,
remark: '',
isSealed: -1,
isDeleted: -1,
},
{
id: '1123598814738675229',
parentId: '1123598814738675227',
code: 'org_category',
value: 2,
label: '区域分公司',
sort: 2,
remark: '',
isSealed: -1,
isDeleted: -1,
},
{
id: '1123598814738675230',
parentId: '1123598814738675227',
code: 'org_category',
value: 3,
label: '分公司',
sort: 3,
remark: '',
isSealed: -1,
isDeleted: -1,
},
{
id: '1780554765827915778',
parentId: '1123598814738675227',
code: 'org_category',
value: 4,
label: '部门',
sort: 4,
remark: '',
isSealed: -1,
isDeleted: -1,
},
];
// 方法一:
let label = findByValue(data, 3);
console.log(label); // 分公司
let labels = findByValue(data, [3, 4]);
console.log(labels); // 分公司,部门
// 方法二:
let label1 = data.filter(option => [3, 4].includes(option.value)).map(option => option.label);
console.log(label1.join(',')); // 分公司,部门