Допустим, вы хотите выполнить условие if / else - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь запустить этот код для печати значения, основанного на определенных условиях, но печатается только одно значение.Вот код:

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 ]

6 голосов
/ 10 мая 2019

Попробуйте назначить уникальное значение каждому из вариантов.

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);
0 голосов
/ 11 мая 2019

Javascript технически не имеет перечисления.Если вы не инициализируете переменную, она инициализируется как неопределенная.

То есть, следующие два утверждения абсолютно одинаковы:

let instagramlikes;
let instagramlikes = undefined

И в вашей функции вы по существупередать x и undefined.Затем он проверяет, является ли x === instagramlikes, что переводится как undefined === undefined, что будет true.

Для того, чтобы смоделировать перечисление, вы можете попытаться установить переменные в какое-либо значение, например, так:

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));

Это не обязательно должна быть строка, вы можете использовать число или любой другой объект.Например, Symbol , если среда, на которую вы ориентируетесь, поддерживает его.

Каждый экземпляр Symbol уникален, поэтому сравнение с === должно работать безупречно.

const instagramlikes = Symbol();
const sitetraffic = Symbol();
const dailytraffic = Symbol();

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...