if (msg.payload[i].Active== 0) this will test fine and everything is working as it should be.
However the editor in the function node gives me a warning Use '===' to compare with '0'.
So if I change that to if (msg.payload[i].Active=== 0) the editor warning is gone, but my function it not working anymore, this will always be tested falls no matter what the value is.
In short, === is a strict type and value test. In your code, that means the Active property must be a Number type and must have the value 0.
The == comparison doesn't do strict type checking. So it will accept a much wider set of values. For example: "0"==0. But also false==0 and other possibly unexpected results. This is why you get a warning.
So the real question is what exactly is the value and type of the msg.payload[i].Active property. If you pass it to the debug sidebar, it should give you hint you need.