Вам на самом деле не нужно делать .length !== 0
. Вы можете просто сделать:
if (Array.isArray(A.B.C) && A.B.C.length) { // <-- order is important here
//...
}
.length
будет оцениваться как логическое значение и даст вам тот же результат, что и проверка с !==0
Как говорится, ваши пути довольно длинные, поэтому вы, вероятно, захотите убедиться, что они действительны. То есть, если drugPrice
или mailPrice
неверно, у вас возникнет проблема. Поэтому, как правило, вы хотели бы проверить их. Так как ваш вопрос был о части массива, я пропущу их, но только к сведению.
Вы можете создать свою собственную проверку пути или, если вы используете библиотеки, такие как lodash / underscore и т. Д., У них всегда есть удобные get/has
функции для проверки следующим образом (с lodash
):
if (_.has(drugPrice, 'mailPrice.rejectMessage.length'))
//...
}
Очевидно, что не используйте эти библиотеки только для этого, но если они у вас уже есть, эти методы довольно удобны. Вы также можете просто проверить каждый из путей с помощью:
if (A && A.B && Array.isArray(A.B.C) && A.B.C.length) {
//...
}
Просто утомительно, если у вас длинные пути к объектам и т. Д.