Я пытаюсь построить объект JSON на основе данных, которые есть у клиента под рукой.
В идеале он будет выбирать данные адреса, если они доступны, а затем данные корзины, если они недоступны, в противном случае - ноль.
Здесь данные извлекаются из localStorage, но я сталкиваюсь с проблемами, addresses
и cart
разрешают следующие ошибки, когда null
.
Не удается прочитать свойство 'length' из null
Невозможно прочитать свойство 'idShipTo' из неопределенного
let cart = JSON.parse(localStorage.getItem('shopping-cart'));
let addresses = JSON.parse(localStorage.getItem('customer-address'));
this.request = {
address: {
shipToAddLine: addresses[0].shipToAddLine || cart.shipToAddLine || null,
shipToCityStZip: addresses[0].shipToCityStZip || cart.shipToCityStZip || null
}
}
Я хотел бы использовать что-то вроде троичного оператора, но использовать более одного значения if / else.
this.request = {
address: {
shipToAddLine: (addresses) ? addresses[0].shipToAddLine || (cart) ? cart.shipToAddLine || null,
shipToCityStZip: (addresses) ? addresses[0].shipToCityStZip || (cart) ? cart.shipToCityStZip || null
}
}
Возможно ли это с использованием чистого (однострочного) синтаксиса в JS, или мне нужно помещать назначения в блоки if / else?
let shipToAddLine;
if (addresses) shipToAddLine = addresses[0].shipToAddLine;
else if (cart) shipToAddLine = cart.shipToCityStZip;
else shipToAddLine = null;
et c ...