我试图看看它们是否是测试未定义属性的简写方法,如果这样初始化或分配它。
obj: {
array: [];
}
obj.array.push(something);
如果array
不属于obj
的一部分,我将如何以尽可能短的方式对其进行测试并仍然推送它。原因是我想减少属性为NULL的http请求的大小,并且我的对象有很多属性。
答案 0 :(得分:1)
您可以使用检查属性的赋值,如果不存在则使用数组。
(obj.array = obj.array || []).push(value);
var obj = {},
checkNPush = (o, k, v) => (o[k] = o[k] || []).push(v);
(obj.array = obj.array || []).push(42);
(obj.array = obj.array || []).push(43);
checkNPush(obj, 'array', 44);
console.log(obj);
.as-console-wrapper { max-height: 100% !important; top: 0; }