Помогите построить цикл For in!

Доброго дня всем! Помогите пожалуйста оптимизировать код, есть задача перебора состояния всех реле и при нажатии кнопки если какое-то реле True переключить все в False, для этого распарсить все состояния реле, задача простая но я где-то ошибаюсь в синтаксисе и правило не исполняется
есть Обьект с состояниями кнопок
var buttons = {In1:“wb-gpio/EXT1_DR1”,
In2:“wb-gpio/EXT1_DR2”,
In3:“wb-gpio/EXT1_DR3”,
In4:“wb-gpio/EXT1_DR4”,
In5:“wb-gpio/EXT1_DR5”,
In6:“wb-gpio/EXT1_DR6”,
In7:“wb-gpio/EXT1_DR7”,
In8:“wb-gpio/EXT1_DR8”,
In9:“wb-gpio/EXT1_DR9”,
In10:“wb-gpio/EXT1_DR10”,
In11:“wb-gpio/EXT1_DR11”,
In12:“wb-gpio/EXT1_DR12”,
In13:“wb-gpio/EXT1_DR13”,
In14:“wb-gpio/EXT1_DR14”,
};
и Обьект с состояниями реле
var relays = {Out1:“wb-gpio/A1_OUT”,
Out2:“wb-gpio/A2_OUT”,
Out3:“wb-gpio/A3_OUT”,
Out4:“wb-gpio/A4_OUT”,
};

при замыкании кнопки должен запускаться цикл и если условие выполняется срабатывать, подскажите ошибку

я хочу использовать for in чтобы не писать длинную строчку в условии
когда пишу

defineRule(“else”,{
whenChanged: buttons.In11,
then: function (newValue, devName, cellName) {
if (dev[buttons.In11] == true) {
//for (var i in relays ) {
if (dev[relays.Out1] == false || dev[relays.Out2] == false && dev[relays.Out3] == false || dev[relays.Out4] == false) {
dev[relays.Out3] = true;
}

//}
}

}
});

все работает но я хочу сократить запись с помощью:
for (var i in relays )

defineRule(“else”,{
whenChanged: buttons.In11,
then: function (newValue, devName, cellName) {
if (dev[buttons.In11] == true) {
for (var i in relays ) {
if (i+“:”+relays[i] && dev[relays.Out1] == false || dev[relays.Out2] == false && dev[relays.Out3] == false || dev[relays.Out4] == false) {
dev[relays.Out3] = true;
}

}
}

}
});

Как же правильно записать чтобы сократить длинную строку if не использовать dev[relays.Out1] == false || dev[relays.Out2] == false && dev[relays.Out3] == false || dev[relays.Out4] == false)

Добрый день.

Думаю вот так:

//09_11_test_01.js

var relays = {Out1:"wb-gpio/A1_OUT",
Out2:"wb-gpio/A2_OUT",
Out3:"wb-gpio/A3_OUT",
Out4:"wb-gpio/A4_OUT",
};

for (i in relays){
  log.info("Выведем ключ: ", i, " значение ключа: ", relays[i]);
}

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.