Ха, я обожаю все варианты здесь. Но поскольку я не видел, что я использую больше всего, я добавлю еще один!
value = array['productId'] && array['productId'].first
(я предпочитаю .first
к [0]
, потому что он читает немного лучше)
Это предполагает, что вы будете иметь массив в array['productId']
, который является правильный способ сделать это (а не тип- проверка).
В противном случае, самый большой различию между этим и вашим исходным кодом, что это приводит к value
имея nil
, возложенную на него, если массив не имеет ничего, в то время как ваши оригинальные результаты в value
не определено (что может привести к ошибкам , в зависимости от того, как вы используете его по дороге).
Надеюсь, что это поможет!
Я думаю, что это хэш, а не массив. Кроме того, я не уверен, что есть что-то более сжатое, чем то, что у вас есть: «Если элемент существует, чем взаимодействовать с ним более определенным образом». Вы не получите гораздо более сжатый, чем условный, если вы не будете делать этот процесс снова и снова и выиграете от цикла. – Matchu
В основном я создаю объект и сохраняю его в Active Record. когда модель имеет 10+ полей, для вывода данных из этих данных не требуется 10 различных условных выражений. Также см. Мой ответ на SpyrosP – JBlake