【发布时间】:2016-11-20 15:48:13
【问题描述】:
我有一个包含项目的数组。
我通过这个函数收集表单数据来制作这个数组:
getFormdata : function(form) {
var formdata = $(form)
.serializeArray()
.filter(function (item) {
return item.name != "__RequestVerificationToken"
});
return formdata;
}
当我在表单中有一个复选框并且选中它时,我会在数组中得到两个项目,其中一个具有值
是的
另一个有
假
我正在使用 jquery filter 函数来过滤数组,但我不知道如何丢弃具有值的项目
假
数组的非预期结果:
我的尝试:
getFormdata : function(form) {
var formdata = $(form)
.serializeArray()
.filter(function (item) {
return item.name != "__RequestVerificationToken" && (item.name == "IsActive" && item.value != "false");
});
return formdata;
}
但这会过滤掉所有元素,而不仅仅是我想要删除的元素。
我该怎么做?
编辑:
只有当有两个同名的项目时,才应删除项目编号 2。 如果我只有一个名为“IsActive”的项目,则不应删除 nr 2
【问题讨论】:
-
你能给我们一个输入数组和预期结果的例子
-
我有,你看不到图片吗?期望的结果基本相同,但没有项目 nr 2
-
所以你有 2 个属性名称和值,但你想要什么结果?也许是另一张图片
-
旁注,根据你的条件,你真的不需要名字检查。第二个名字 == check if true 也会断言第一个名字为真。
-
尝试用一句话描述条件(然后将其转换为代码):"Keep an item if ..." 。我相信你想要
item.name === 'isActive' ? item.value !== 'false' : item.name !== '__RequestVerificationToken'。
标签: javascript jquery arrays