假设您要运行if / else条件

时间:2019-05-10 20:44:12

标签: javascript if-statement

我正在尝试运行此代码以根据某些条件打印一个值,但它仅打印一个值。这是代码:

let instagramlikes;
let sitetraffic;
let dailytraffic;

function clientwidgets(x) {
  if (x === instagramlikes) {
    console.log("This is A");
  } else if (x === sitetraffic) {
    console.log("This is B");
  } else if (x === dailytraffic) {
    console.log("This is C")
  }
};

console.log(clientwidgets(instagramlikes));
console.log(clientwidgets(sitetraffic));
console.log(clientwidgets(dailytraffic));

2 个答案:

答案 0 :(得分:6)

尝试为每个不同的选项分配唯一的值。

let instagramlikes = 1;
let sitetraffic = 2;
let dailytraffic = 3;

function clientwidgets(x){
  if (x === instagramlikes){
    console.log("This is A");
  } else if (x === sitetraffic){
    console.log("This is B");
  } else if (x === dailytraffic){
    console.log("This is C")
  }
}


clientwidgets(instagramlikes);
clientwidgets(sitetraffic);
clientwidgets(dailytraffic);

我将创建一个对象枚举以容纳所有类型:

const TYPE = {
  INSTAGRAM_LIKES:1,
  SITE_TRAFFIC:2,
  DAILY_TRAFFIC:3
}

然后像这样打电话

clientwidgets(TYPE.INSTAGRAM_LIKES);

答案 1 :(得分:0)

Javascript在技术上没有枚举。 如果不初始化变量,则将其初始化为未定义。

也就是说,以下两个语句完全相同:

let instagramlikes;
let instagramlikes = undefined

在函数中,您实际上传递了xundefined。然后,这会检查是否将x === instagramlikes转换为undefined === undefined的{​​{1}}。

为了模拟枚举,您可以尝试将变量设置为某个值,如下所示:

true

虽然不一定是字符串,但是您可以使用数字或任何对象。例如Symbol,前提是您要定位的环境支持它。

每个Symbol实例都是唯一的,因此与const instagramlikes = 'instagramlikes'; const sitetraffic = 'sitetraffic'; const dailytraffic = 'dailytraffic'; function clientwidgets(x) { if (x === instagramlikes) { return "This is A"; } else if (x === sitetraffic) { return "This is B"; } else if (x === dailytraffic) { return "This is C"; } }; console.log(clientwidgets(instagramlikes)); console.log(clientwidgets(sitetraffic)); console.log(clientwidgets(dailytraffic));的比较应该可以正常工作。

===