是否有编写以下内容的速记或功能?
x = x? x+1 : 1
最近,我发现自己需要经常检查是否已定义了一些嵌套对象属性,如果有,请对其进行递增,从而使上面的行很长。就像是:
object1[atttribute1][atttribute2][atttribute3] = object1[atttribute1][atttribute2][atttribute3]? object1[atttribute1][atttribute2][atttribute3]+1:1;
我想知道是否有一些内置功能可以做到这一点?遵循以下原则:
x = performActionIfExistsOrAssignDefault(x, add1, 1)
function add1(x){
return x+1;
}
最佳答案
没有内置的魔术(尽管您可以自己创建一个函数),但是写此代码的方式明显短得多:
x = (x || 0) + 1
这也可以转换为第二个示例中的数组
object1 = (object1 || [])
object1[attr1] = (object1[attr1] || [])
如果您不知道属性是否存在,也可以使用此方法访问深层嵌套的对象:
var something = (((obj || {}).prop1) || {}).prop2 || {}).prop3;
关于javascript - 添加到变量(如果已定义或分配)的简写/函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48935992/