对于我的任务,我已经完成了一段代码,例如获取用户详细信息,
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"
};
}
有人可以帮我吗?
先谢谢
答案 0 :(得分:4)
由于差异只是一个属性(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?
};
});
答案 1 :(得分:3)
您的map
函数需要在每次迭代时返回一些内容。只需添加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"
};
}