简体   繁体   English

我怎样才能缩短这个 javascript if 语句? (如果 1,如果 2)

[英]How can i shorten this javascript if statement ? ( if 1 , if 2 )

I am creating a site that extracts data from an api.我正在创建一个从 api 中提取数据的站点。 I want to create an if else statement that changes the html based on if the result is 0,1,2,4.我想创建一个 if else 语句,根据结果是否为 0、1、2、4 来更改 html。 Can i fit this into one statement rather than having 4 separate statements?我可以将其放入一个语句而不是 4 个单独的语句中吗?

if(data.results.indexOf(element) === 0){
      result0.style.display = "block"
      result0.innerHTML =
      `${element.original_title}`
    } else if (data.results.indexOf(element) === 1){
      result1.style.display = "block"
      result1.innerHTML =
      `${element.original_title}`
  } else if (data.results.indexOf(element) === 2){
    result2.style.display = "block"
    result2.innerHTML =
    `${element.original_title}`
  } else if (data.results.indexOf(element) === 3){
    result3.style.display = "block"
    result3.innerHTML =
    `${element.original_title}`
  }

You can index an array:您可以索引一个数组:

const ele = [result0, result1, result2, result3][data.results.indexOf(element)];
ele.style.display = "block";
ele.innerHTML = element.original_title;

I'll probably get flamed for this, but you can also do it this way:我可能会为此感到愤怒,但你也可以这样做:

let res = eval(`result${data.results.indexOf(element)}`);
res.style.display = "block"
res.innerHTML = `${element.original_title}`

However, as pointed out, it would be much better to put all the elements into a numbered array as opposed to trying to textually guess their variable names.然而,正如所指出的,将所有元素放入一个编号数组中,而不是试图从文本中猜测它们的变量名要好得多。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM