我正在使用socket.io以msg
格式向前端发送一些数据data1 : data2
。我正在使用Javascript函数msg.split(":")
来分割这些数据,如果alert
等于字符串,我会data2
消息。
问题是,无论如何,尽管已经拆分的数据属于String
类型,但==
或===
运算符不起作用且{{永远不会输入如下所示的语句。
以下是javascript代码:
if
我尝试使用单引号而不是双引号,但我仍然面临同样的错误。
出于调试目的,输入socket.on('alldata', function(msg) {
var [data1, data2] = msg.split(":");
console.log(data2 + "," + typeof(data2) + "," + data2.length); //here it logs "SE,String,2"
if (data2 == "SE") { // is the direction of the wind South East
alert("entered if statement");
}
});
总是data2
没有空格,SE
是一个数字,但它并不重要,因为我只使用data1
,所以我是什么期望发生的是data2
条件评估为真,最终if
内部消息。
答案 0 :(得分:0)
// 1
var msg = "Left:Right";
var [data1 , data2] = msg.split(":");
console.log(data2 + "," + typeof(data2) + "," + data2.length);
if(data2 == "Right"){
console.log("entered if statement");
}
// 2
var msg = " Left : Right ";
var [data1 , data2] = msg.split(":");
console.log(data2 + "," + typeof(data2) + "," + data2.length);
if(data2 == "Right"){ //
console.log("entered if statement");
}
// 3
var msg = " Left : Right ";
var [data1 , data2] = msg.split(":");
console.log(data2 + "," + typeof(data2) + "," + data2.length);
if(data2.trim() == "Right"){
console.log("entered if statement");
}