我正在尝试运行此代码以根据某些条件打印一个值,但它仅打印一个值。这是代码:
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));
答案 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
在函数中,您实际上传递了x
和undefined
。然后,这会检查是否将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));
的比较应该可以正常工作。
===