Javascript 为什么obj.a=(obj.a | |[]).push(10)使obj.a成为类型号
我试图将一个值推送到数组的属性,如下所示Javascript 为什么obj.a=(obj.a | |[]).push(10)使obj.a成为类型号,javascript,Javascript,我试图将一个值推送到数组的属性,如下所示 var obj = {}; obj.a = (obj.a || []).push(10); console.log( typeof obj.a ); // Returning number 如何更正此错误以将obj.a保留为数组?因为返回数组的新长度: 返回值 调用方法的对象的新长度属性 你可以做: (obj.a || (obj.a = [])).push(10); 非常感谢。如果我尝试上面的方法,比如obj.a=(obj.a | | ob
var obj = {};
obj.a = (obj.a || []).push(10);
console.log( typeof obj.a ); // Returning number
如何更正此错误以将obj.a保留为数组?因为返回数组的新长度:
返回值调用方法的对象的新长度属性 你可以做:
(obj.a || (obj.a = [])).push(10);
非常感谢。如果我尝试上面的方法,比如
obj.a=(obj.a | | obj.a=[])。push(10)代码>引用错误:赋值中的左侧无效哦,我想您还需要一组括号。整行代码只是(obj.a | |(obj.a=[])).push(10)代码>。在开始时删除分配,您正在将分配移到内部。然后您肯定在其他地方有错误,因为它工作正常:。