我需要通过 if else 定义 2 个关于数据表的不同配置行,但我的行不起作用。我需要一只手。
if(role === 1) {
lengthMenu: [10, 25, 50],
} else {
lengthMenu: [10, 25, 50, 75, 100],
}
我需要通过 if else 定义 2 个关于数据表的不同配置行,但我的行不起作用。我需要一只手。
if(role === 1) {
lengthMenu: [10, 25, 50],
} else {
lengthMenu: [10, 25, 50, 75, 100],
}
您不能在 JavaScript 对象定义的中间有条件地定义,至少不能使用if语句。
通常你需要有选择地修改它,或者使用一个函数。
例如,使用一个函数:
function lengthMenuForRole(role) {
if (role === 1) {
return [10, 25, 50];
}
return [10, 25, 50, 75, 100];
}
obj = {
...,
lengthMenu: lengthMenuForRole(role)
};
你也可以有任何给定的对象obj,然后:
if(role === 1) {
obj.lengthMenu = [10, 25, 50];
} else {
obj.lengthMenu = [10, 25, 50, 75, 100];
}
let role = 1
let first_obj = {
lengthMenu:(role ===1?[10, 25, 50]:[10, 25, 50, 75, 100])
}
console.log(first_obj)
role = 5
first_obj = {
lengthMenu:(role ===1?[10, 25, 50]:[10, 25, 50, 75, 100])
}
console.log(first_obj)
在这里,我假设每个角色的数组都是相同的,除了更高值的选项被修剪掉(我不确定 Hao Wu 的 / Alan Omar 对三元运算符的使用并不比这更容易阅读):
const config = (role) => ({
lengthMenu: [10, 25, 50, 75, 100].slice(0, role === 1 ? 3 : 5)
});
console.log(config(1));
console.log(config(2));