gpt4 book ai didi

javascript - 分配 Javascript 对象属性

转载 作者:行者123 更新时间:2023-11-30 10:04:45 24 4
gpt4 key购买 nike

是否有更优雅的方式来分配这些属性?当我完成所有各种场景时,这个 if 语句可能会变得丑陋。我也在努力避免案例陈述。

if(arrResponse.length>2){
objResponse = {
type : evl_ResponseType[arrResponse[0]].name,
partition : evl_Partition_Status_Code[arrResponse[1]].description,
icons : iconLED(bin(arrResponse[2]).result),
numeric : arrResponse[3],
beeps : BEEP_field[arrResponse[4]],
msg : arrResponse[5].replace('$','').trim()};
}
else {
objResponse = {
type : evl_ResponseType[arrResponse[0]].name;
}
}
return objResponse;

最佳答案

好吧,你可以这样做:

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[5 时,使用 arrResponse.length > 5 ] for msg).


旁注:如果 arrResponse.length 不是 >2,则您的代码不会分配给 partition,但您的值是即使 arrResponse.length equals 2,也可以分配给 partition

关于javascript - 分配 Javascript 对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29733456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com