js:三元运算符中的多个return

js: Multiple return in Ternary Operator

对于我的任务,我已经完成了一段代码来获取用户详细信息,

var data = userInfo.map(function (element) {
    if (element[9].search("Active") != -1) {
        return {
            'LastName': Capitalizefirstletter(element[1]),
            'FirstName': Capitalizefirstletter(element[2]),
            'UserName': element[3],
            'IsActiveUser': "True"
        };
    }
    else {
        return {
            'LastName': Capitalizefirstletter(element[1]),
            'FirstName': Capitalizefirstletter(element[2]),
            'UserName': element[3],
            'IsActiveUser': "False"
        };
    }
}

工作正常,我可以在可变数据中看到所有用户的所有详细信息。

在重构时,我被要求使用三元运算符来实现它(不知道为什么我必须这样改变,尽管那个工作正常)。所以我这样尝试,执行了代码,但我只能在变量数据中看到 NULL 值。

var data = userInfo.map(function (element) {
    (element[9].search("Active")) != -1  ? {
        'LastName': Capitalizefirstletter(element[1]),
        'FirstName': Capitalizefirstletter(element[2]),
        'UserName': element[3],
        'IsActiveUser': "True"
    } : {
        'LastName': Capitalizefirstletter(element[1]),
        'FirstName': Capitalizefirstletter(element[2]),
        'UserName': element[3],
        'IsActiveUser': "False"
    };
}

谁能帮我解决这个问题?

提前致谢

您的 map 函数需要在每次迭代时 return 做一些事情。只需添加 return 关键字:

var data = userInfo.map(function (element) {
    return (element[9].search("Active")) != -1  ? {
        'LastName': Capitalizefirstletter(element[1]),
        'FirstName': Capitalizefirstletter(element[2]),
        'UserName': element[3],
        'IsActiveUser': "True"
    } : {
        'LastName': Capitalizefirstletter(element[1]),
        'FirstName': Capitalizefirstletter(element[2]),
        'UserName': element[3],
        'IsActiveUser': "False"
    };
}

因为只差一个属性(IsActiveUser),所以可以在对象里面插入比较。

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