使用split()函数

时间:2018-01-31 16:05:30

标签: javascript

我正在使用msg格式向前端发送一些数据data1 : data2。我正在使用Javascript函数msg.split(":")来分割这些数据,如果alert等于字符串,我会data2消息。

问题是,无论如何,尽管已经拆分的数据属于String类型,但=====运算符不起作用且{{永远不会输入如下所示的语句。

以下是代码:

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内部消息。

1 个答案:

答案 0 :(得分:0)

  • 1st - 按预期工作
  • 第二名 - 由于额外的空格而无效 (在控制台日志中不可见)
  • 3rd - 修剪后的作品

        // 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");
        }