I was working on some backend node.js if condition when i realized i wasnt getting an error when i do this if (value.accepters !== undefined && value.accepters.length !== 0)
while checking an object with a missing key but if i do value.accepters.length
i get error, can anyone explain why for better understanding, thanks.
An example:
a bit messy, please don't mind.
Code Update
var value = {accepters: ["id1"], rejecters: [], blockedRoom: []}
// did some long code work here
value = {accepters: ["id1"], rejecters: []}
console.log("blockedRoom check 1:", value.blockedRoom !== undefined && value.blockedRoom.length !== 0) // No Error
console.log("blockedRoom check 2:", value.blockedRoom.length !== 0) // Error
var accepters = 0;
var rejecters = 0;
var amongAccepters = false;
var amongRejecters = false;
var amongBlockers = false;
// No Error
if (value.accepters !== undefined && value.accepters.length !== 0){
accepters = value.accepters.length;
const foundUserAmongAccepters = value.accepters.find(
(v) => v.key === key
);
if (foundUserAmongAccepters !== undefined) {
amongAccepters = true;
}
}
if (value.rejecters !== undefined && value.rejecters.length !== 0) {
rejecters = value.rejecters.length;
const foundUserAmongRejecters = value.rejecters.find(
(v) => v.key === key
);
if (foundUserAmongRejecters !== undefined) {
amongRejecters = true;
}
}
if (value.blockedRoom !== undefined && value.blockedRoom.length !== 0) {
const foundUserAmongBlockers = value.blockedRoom.find((v) => v === key);
if (foundUserAmongBlockers !== undefined) {
amongBlockers = true;
}
}