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