Этот скелет:
if (A && B) {
if (C)
print(msgA);
print(msgB);
} else {
print(msgA);
}
можно переписать так:
var AB = A && B;
if ((AB && C) || !AB)
print(msgA);
if (AB)
print(msgB);
Как видите, msgA
и msgB
появляются только один раз, так что вы можете создавать строки на лету прямо там, где они напечатаны. Очевидно, в вашем случае A
будет data.site_with_same_coords
, B
будет data.site_with_same_name
, а C будет data.site_with_same_name.id != data.site_with_same_coords.id
.
Само собой разумеется, что переписанная версия гораздо менее читабельна.
обновление: если вам действительно нужно оповещение (), тогда вы должны сделать:
var AB = A && B;
if ((AB && C) || !AB)
msg += msgA;
if (AB)
msg += msgB;
if (msg)
alert(msg);