gpt4 book ai didi

javascript - Javascript : Nested Return Statement, return inside Return

转载 作者:行者123 更新时间:2023-12-02 06:15:07 29 4
gpt4 key购买 nike

在我之前的一个问题中 js: Multiple return in Ternary Operator我询问了有关使用三元运算符返回多个参数的问题。但是现在参数IsActveUser boolean(true|false)标志已经修改为integer(0|1|2|3)标志

以前它只有两种状态,

True - Valid User
False - InValid User

现在它有四种状态,

0 - InValid User
1 - Valid User
2 - Future User
3 - Expired User

所以之前,我的编码是这样的,

var data = userInfo.map(function (element) {
return {
'LastName': Capitalizefirstletter(element[1]),
'FirstName': Capitalizefirstletter(element[2]),
'UserName': element[3],
'IsActiveUser': ~element[9].search("Valid") ? "True": "False" // really a string?
};
)}

现在我必须像这样检查四个状态标志

var data = userInfo.map(function (item) {
if (item[9].search("title = \"Expired\"")) {
return {
'LastName': Capitalizefirstletter(item[1]),
'FirstName': Capitalizefirstletter(item[2]),
'UserName': item[3],
'UserStatusFlag': 3 // flag should be 3 in this case
};
}
else if (item[9].search("title = \"Valid\"")) {
return {
'LastName': Capitalizefirstletter(item[1]),
'FirstName': Capitalizefirstletter(item[2]),
'UserName': item[3],
'UserStatusFlag': 1 // flag should be 1 in this case
};
}
else if (item[9].search("title = \"Invalid\"")) {
return {
'LastName': Capitalizefirstletter(item[1]),
'FirstName': Capitalizefirstletter(item[2]),
'UserName': item[3],
'UserStatusFlag': 0 // flag should be 0 in this case
};
}
else if (item[9].search("title = \"Future\"")) {
return {
'LastName': Capitalizefirstletter(item[1]),
'FirstName': Capitalizefirstletter(item[2]),
'UserName': item[3],
'UserStatusFlag': 2 // flag should be 2 in this case
};
}
});

但这在 Knockout JS 中并没有像预期的那样工作。

我应该使用这样的东西吗,else-if 检查内部返回语句

var data = userInfo.map(function (element) {
return {
'LastName': Capitalizefirstletter(element[1]),
'FirstName': Capitalizefirstletter(element[2]),
'UserName': element[3],
'UserStatusFlag': if(~element[9].search("Valid")) {1}
else if (~element[9].search("InValid")) {0}
else if (~element[9].search("Future")) {2}
else if (~element[9].search("Expired")) {3}
};
})

任何建议都会有所帮助。

最佳答案

进行函数调用,使用switch语句

function getCode (item) {
switch (item) {
case "InValid User" :
return 0;
case "Valid User" :
return 1;
case "Future User" :
return 2;
case "Expired User" :
return 3;
}
}

并在构建对象时调用它

var data = userInfo.map(function (element) {
return {
'LastName': Capitalizefirstletter(element[1]),
'FirstName': Capitalizefirstletter(element[2]),
'UserName': element[3],
'UserStatusFlag': getCode(element[9])
};
});

或者你可以使用对象而不是开关

var states = {
"InValid User" : 0,
"Valid User" : 1,
"Future User" : 2,
"Expired User" : 3
};

var data = userInfo.map(function (element) {
return {
'LastName': Capitalizefirstletter(element[1]),
'FirstName': Capitalizefirstletter(element[2]),
'UserName': element[3],
'UserStatusFlag': states[element[9]]
};
});

关于javascript - Javascript : Nested Return Statement, return inside Return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37658784/

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