所以我有5个变量:
var item_id
var status
var next_contact
var email
var phone_number
var comment
这些是在POST请求中发送到我的服务器的数组:
d = {'item_id': item_id, 'status': status, 'next_contact': next_contact, 'email': email, 'phone_number': phone_number, 'comment': comment}
在发出请求之前,我想检查哪些变量是空的,如果它们是空的,我想从POST请求中删除它们。
如何以最小化的方式实现这一目标?
我想为每个变量做这样的事情:
d = [];
if(email != '') {
d.push('email': email);
}
这是个好主意吗?
谢谢!
答案 0 :(得分:2)
由于d
是对象,您只需循环删除值为null或为空的属性:
for (var k in d) {
if (d[k] === null || d[k] === '') delete d[k];
}
答案 1 :(得分:0)
另一种方法是创建一个item
对象,并将变量指定为属性。然后,您可以使用函数迭代此对象,并将值作为另一个可以传递给POST请求的对象返回。
// this would make a nice "class" or model
var item = {};
item.id = 1;
item.status = "complete";
item.email = undefined;
item.null = null;
item.empty = '';
// etc...
// get non falsey values
function getValues(item) {
var values = {};
for (var prop in item) {
if (item.hasOwnProperty(prop) && item[prop]) {
values[prop] = item[prop];
}
}
return values;
}
d = getValues(item);
console.log(d); // {id: 1, status: "complete"}