[英]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.