0

我需要通过 if else 定义 2 个关于数据表的不同配置行,但我的行不起作用。我需要一只手。

 if(role === 1) {    
   lengthMenu: [10, 25, 50],  
 } else {      
    lengthMenu: [10, 25, 50, 75, 100],  
 } 
4

3 回答 3

0

您不能在 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];
} 
于 2021-02-24T07:28:13.340 回答
0

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)

于 2021-02-24T07:37:11.177 回答
0

在这里,我假设每个角色的数组都是相同的,除了更高值的选项被修剪掉(我不确定 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));

于 2021-02-24T07:47:57.217 回答