如果Else和Javascript我错过了什么?

时间:2015-03-29 09:07:22

标签: javascript if-statement conditional-statements

我认为我的if else声明中存在一个问题,因为我认为它给了我与我期望的相反的结果。

console.log(_.map(item, function(n){return _.find(n).tertiary})) 
//is undefined.

console.log(_.map(item, function(n){return _.find(n).primary}));
//is ["green"]

I use the following if statement to assign a value to my variable:

if(_.map(item, function(n){return _.find(n).tertiary}) === undefined ){
   var audience = _.map(item, function(n){return _.find(n).tertiary});
   } else {
   var audience = _.map(item, function (n) {return _.find(n).primary});
   }

console.log(audience);//this is undefined

我做错了什么或这是否正常工作?我希望答案是[“绿色”]。

2 个答案:

答案 0 :(得分:3)

将您的if else更改为:

if(_.map(item, function(n){return _.find(n).tertiary}) === undefined ){//since tertiary is undefined, so use primary instead
    var audience = _.map(item, function (n) {return _.find(n).primary});
} else {
    var audience = _.map(item, function(n){return _.find(n).tertiary});
}

答案 1 :(得分:1)

只是为了一点点:

var colours = _.map(item, function(n){
    return {primary: _.find(n).primary, tertiary: _.find(n).tertiary}
})

var audience = colours.primary || colours.tertiary

console.log(audience)

虽然下划线/ lodash可能会帮助我们更清洁地获取这些价值。