Ну, вы могли сделать это:
objResponse = {
type : evl_ResponseType[arrResponse[0]].name;
};
if(arrResponse.length>2){
objResponse.partition = evl_Partition_Status_Code[arrResponse[1]].description;
objResponse.icons = iconLED(bin(arrResponse[2]).result);
objResponse.numeric = arrResponse[3];
objResponse.beeps = BEEP_field[arrResponse[4]];
objResponse.msg = arrResponse[5].replace('$','').trim();
}
return objResponse;
Но я не думаю, что я бы назвал его более элегантным.
Если вы не возражаете свойства существующих, даже если они не имеют полезные значения, вы могли бы сделать это:
objResponse = {
type : evl_ResponseType[arrResponse[0]].name;
partition : arrResponse.length>2 && evl_Partition_Status_Code[arrResponse[1]].description,
icons : arrResponse.length>2 && iconLED(bin(arrResponse[2]).result),
numeric : arrResponse.length>2 && arrResponse[3],
beeps : arrResponse.length>2 && BEEP_field[arrResponse[4]],
msg : arrResponse.length>2 && arrResponse[5].replace('$','').trim()
};
return objResponse;
свойства будет иметь значение false
если условие предваряя их не встретил.
Это также имеет то преимущество, что вы можете адаптировать условия к используемому вами индексу (например, используя arrResponse.length > 5
, когда вы собираетесь использовать arrResponse[5]
для msg
).
Side Примечание: Ваш код не приписывая partition
если arrResponse.length
не >2
, но значение вы присваивание partition
есть даже если arrResponse.length
равен2
.
Создать объект по var objResponse = {}; Затем присвойте свойства objResponse.probName = value; –
Различные объекты 'evl_' - словари, а' arrResponse' содержит ключи в этом словаре, которые используются для поиска фактических значений, на которые вы хотите висеть? –
И когда вы говорите «закончить все различные сценарии» ... можете ли вы привести пример того, что осталось? Это упростит поиск общей картины. –