动态添加属性到对象

时间:2015-02-27 17:16:22

标签: javascript

我有一个名为Object1的对象,它是第三方对象&我在里面放置了属性。

Object1.shoot({
'prop1':prop_1,
'prop2':prop_2,
'prop3':prop_3
});

现在我想要钥匙' prop1'仅当prop_1具有某个值时才作为属性添加到Object1。否则我不想添加它,

最好的办法是什么?

2 个答案:

答案 0 :(得分:1)

您可以先检查for循环中的每个属性。

var params = {
    'prop1':prop_1,
    'prop2':prop_2,
    'prop3':prop_3
};

for (var param in params) {
    if (typeof params[param] === 'undefined') {
        delete params[param];
    }
}

Object1.shoot(params);

答案 1 :(得分:0)

如果已定义,您可以创建辅助函数来添加属性:

function addProp(target, name, value) {
  if(value != null) {
    target[name] = value
  }
}

var props = {}
addProp(props, 'prop1', prop_1)
addProp(props, 'prop2', prop_2)
addProp(props, 'prop3', prop_3)

以上操作会null检查,而不是undefined检查。您可以根据需要进行更改(例如,您可能不需要空字符串,或者数字零或其他任何内容),但请先检查一下: