gpt4 book ai didi

Javascript 简写 OR 操作

转载 作者:行者123 更新时间:2023-11-30 10:16:32 28 4
gpt4 key购买 nike

我觉得这一定是重复的,但我找不到任何东西,可能是由于措辞不同,或者只是因为确实没有更好的东西。

我正在生成大量的 JS 代码,其中“OR”对象属性与变量,而标识符不一定匹配。看起来像这样(值为 bool 值):

a.borderline = a.borderline || borderline;
a.st1 = a.st1 || st;
a.ref64 = a.ref64 || ref;
a.unfortunatelySometimesQuiteLongIndentifier123 = a.unfortunatelySometimesQuiteLongIndentifier123 || unfortunatelySometimesQuiteLongIndentifier;
...

为了让它更精简,我尝试了类似的方法

a.st1 |= st;

但它使 a.st1 成为整数而不是 bool 值,我不想添加另一行带有双重否定的代码以将其重新键入回 bool 值。

根据直觉,我也尝试了 ||=,但没有帮助 :)

有没有更好(更短)的方式来编写这些命令?

注意:我无法使用循环来处理命令,因为这些命令不会一次全部执行,而是分散在其余代码中的小块中(为简单起见,省略了这些命令).

最佳答案

不,javascript 中没有简写 OR 运算符。 Coffeescript但是提供 ||=?= 来支持 this idiom .

Is there any better (shorter) way of writing these commands?

在您的例子中,您正在修改 a 对象而不是分配给变量。您可以以循环方式执行此操作:

function amendWith(target, source)
for (var p in source)
if (!target[p])
target[p] = source[p];
return target;
}

amendWith(a, {
borderline: borderline,
st1: st,
ref64: ref,
unfortunatelySometimesQuiteLongIndentifier123: unfortunatelySometimesQuiteLongIndentifier

});

关于Javascript 简写 OR 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23393788/

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