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

If Else and Javascript what am I missing?

我认为我的 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

我是不是做错了什么或者它是否正常工作?我希望答案是 ["green"].

将您的 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});
}

只是为了一点变化:

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

var audience = colours.primary || colours.tertiary

console.log(audience)

尽管 underscore/lodash 可能有助于以更清晰的方式获取这些值。