Reputation: 2021
For my task, I have a done a piece of code like to fetch the user details,
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"
};
}
}
which is working properly and i can see all the details of all the user in variable data.
While re factoring, I was asked to implement this using Ternary Operator(No guess why I have to change like this,though that one works fine). So I tried like this, code executed but only NULL value I can see in variable data.
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"
};
}
Can anyone help me on this?
Thanks in Advance
Upvotes: 1
Views: 1665
Reputation: 386560
Since the difference is only one property (IsActiveUser
), you can insert the comparison inside the object.
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?
};
});
Upvotes: 4
Reputation: 2801
Your map
function needs to return something on each iteration. Just add the return
keyword:
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"
};
}
Upvotes: 3