我有一个名为Object1的对象,它是第三方对象&我在里面放置了属性。
Object1.shoot({
'prop1':prop_1,
'prop2':prop_2,
'prop3':prop_3
});
现在我想要钥匙' prop1'仅当prop_1具有某个值时才作为属性添加到Object1。否则我不想添加它,
最好的办法是什么?
答案 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
检查。您可以根据需要进行更改(例如,您可能不需要空字符串,或者数字零或其他任何内容),但请先检查一下: