如何创建数组取决于是否在jQuery中设置了变量
How can I create an array depending on if variables are set in jQuery
所以我有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);
}
这是个好主意吗?
谢谢!
由于d
是一个对象,您可以在它上面循环,删除值为null或空的属性:
for (var k in d) {
if (d[k] === null || d[k] === '') delete d[k];
}
另一种方法是创建一个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"}
相关文章:
- jquery设置为使用参数运行
- Css order属性不't在Jquery设置时更新
- 通过jquery设置最小高度
- 使用jQuery设置HTML5属性值时出现问题
- 如何使用Ajax/jQuery设置cookie
- 通过jQuery设置转换值
- 如何从jQuery设置控制器或全局变量的属性
- javascript/jquery设置var未发生
- jQuery 设置和获取下拉列表和输入的本地存储数据
- 如何使用 jQuery 设置 .selectedIndex
- 使用 jquery 设置 Asp Label 控件的文本值
- 无法从jquery设置标签文本
- 如何使用Jquery设置按钮样式
- jQuery设置属性onclick所有元素,而不是使用内联JS
- 尝试使用jquery设置鼠标按下的时间来更改按钮触发器以控制音量滑块
- 无法使用jquery设置cookie
- 有没有一种快捷方式可以让我用javascript或jQuery设置对象的字段
- 使用Jquery设置页面加载的默认值(我使用的是multiselect插件)
- 单击JQuery设置布尔标志
- textarea根据内容js或jquery设置高度