Javascript 如何将此逻辑实现到方法中

Javascript 如何将此逻辑实现到方法中,javascript,Javascript,试图将此逻辑实现到某个方法中,但最终会弄乱javascript function onMessageArrived(message) { console.log('Message Recieved: Topic: ', message.destinationName, '. Payload: ', message.payloadString, '. QoS: ', message.qos); // console.log(message); var status = mess

试图将此逻辑实现到某个方法中,但最终会弄乱javascript

function onMessageArrived(message) {
    console.log('Message Recieved: Topic: ', message.destinationName, '. Payload: ', message.payloadString, '. QoS: ', message.qos);
//  console.log(message);

    var status = message.payloadString;
    var indicator = message.destinationName;
当插入下面的逻辑时,一切都乱了套。我需要帮助来解决这个问题

    /*This is the logic that messes up the code */
if(message.payloadString == "ON")
{

if(message.destinationName == /data/read/level)
{
// Turn Level Indicator Red
}
else if (message.destinationName == /data/read/nozzle)

{
// Turn Nozzle Indicator Red
}
}
else if(message.payloadString == "OFF")
{

if(message.destinationName == /data/read/level)
{
// Turn Level Indicator Green
}
else if (message.destinationName == /data/read/nozzle)
{
// Turn Nozzle Indicator Green}}  }

message.destinationName
是字符串,所以请将其用引号括起来。和第一个一样,它应该是
“/data/read/level”
,而不是
/data/read/level
,其他人也一样。

首先,语法错误,其次,纠正它取决于最终要检查的内容。我无法判断您是否要与插入的路径进行比较,或者是否要与这些路径指向的位置中存储的值进行比较

如果要查看对象是否等于要提供的路径,请执行以下操作:

if(message.destinationName == 'data/read/level'){...}
if(message.destinationName == data.read.level){...}
如果要查看对象是否等于您在该位置存储的值,则需要执行以下操作

if(message.destinationName == 'data/read/level'){...}
if(message.destinationName == data.read.level){...}
您的
console.log()
也有点不对劲,因为您尝试如何显示数据,您可以像这样在
console.log()中创建一个对象

console.log({
    topic: message.destinationName,
    payload: message.payloadString,
    qos: message.qos
});

它将在控制台中像其他任何东西一样呈现为常规数据对象,而不是试图在每个结果之间连接字符串,试图获得几乎相同的输出。希望这有帮助。

这不是有效的JavaScript。您是否遇到语法错误?