未定义属性的简写,在javascript中初始化和赋值属性

时间:2016-09-08 18:27:43

标签: javascript

我试图看看它们是否是测试未定义属性的简写方法,如果这样初始化或分配它。

obj: {
   array: [];
}
obj.array.push(something);

如果array不属于obj的一部分,我将如何以尽可能短的方式对其进行测试并仍然推送它。原因是我想减少属性为NULL的http请求的大小,并且我的对象有很多属性。

1 个答案:

答案 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; }