gpt4 book ai didi

javascript - 如何检查多个值以及 if 语句中匹配的值?

转载 作者:行者123 更新时间:2023-11-28 12:34:57 25 4
gpt4 key购买 nike

我有一个如下所示的 if 语句:

if ("Bolagsmän" in nicerows){
var contact = this.makeContact(nicerows['Bolagsmän'],true);
}
else if ("Komplementär(er)" in nicerows){
var contact = this.makeContact(nicerows['Komplementär(er)'],true);
}
else if("Innehavare" in nicerows){
var contact = this.makeContact(nicerows['Innehavare'],false);
}
else if("Styrelseledamot, verkställande direktör" in nicerows){
var contact = this.makeContact(nicerows['Styrelseledamot, verkställande direktör'], true);
}
else if("Styrelseledamöter" in nicerows){
var contact = this.makeContact(nicerows['Styrelseledamöter'], true);
}

正如您所看到的,仅仅因为存在一些可能的变量,就需要进行大量的代码乘法运算。有没有更干净的方法来做到这一点?

最佳答案

您可以使用循环,无论是现代循环:

var names = ["Bolagsmän", "Komplementär(er)", "Innehavare", "Styrelseledamot, verkställande direktör", "Styrelseledamöter"];
var contact;
names.some(function(name)
{
if (name in nicerows)
{
contact = this.makeContact(nicerows[name], name !== 'Innehavare');
return true; // Breaks the loop
}
});

或者无聊的旧式:

var names = ["Bolagsmän", "Komplementär(er)", "Innehavare", "Styrelseledamot, verkställande direktör", "Styrelseledamöter"];
var contact;
var index, name;
for (index = 0; index < names.length; ++index)
{
name = names[index];
if (name in nicerows)
{
contact = this.makeContact(nicerows[name], name !== 'Innehavare');
break;
}
}

或者可能将标志放在 map 中:

var names = {
"Bolagsmän": true,
"Komplementär(er)": true,
"Innehavare": false,
"Styrelseledamot, verkställande direktör": true,
"Styrelseledamöter": true
};
var name;
var contact;
for (name in names)
{
if (name in nicerows)
{
contact = this.makeContact(nicerows[name], names[name]);
// Note use of flag -----------------------^
break;
}
}

关于javascript - 如何检查多个值以及 if 语句中匹配的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18085358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com