在我的表单中,我有多个具有相同名称(eform_id)的字段(隐藏文本框)。 (例如,我有7个隐藏的文本框,其中包含如1234,-1235,1236,1237,-1238,-1239,1240之类的值。
我正在将这些值添加到我的js文件中。
var eformDetailIds=$("[name=eform_id]").map(function(){
return $(this).val() }).get();
现在我的要求是我必须将此eformDetailIds分成两个列表..(或一串逗号分隔值),以便第一个列表包含所有正值,第二个列表包含所有负值。
请帮助我找到解决问题的合适代码。
答案 0 :(得分:1)
好:
var positives = $.map(eformDetailIds, function(e) { return e >= 0 ? e : null; });
var negatives = $.map(eformDetailIds, function(e) { return e < 0 ? e : null; });
如果从“.map()”回调中返回null
,则不会向结果数组添加任何内容。
您也可以使用简单的(r)for
循环执行此操作:
var positives = [], negatives = [];
for (var i = 0; i < eformDetailIds.length; ++i)
if (eformDetailIds[i] >= 0)
positives.push(eformDetailIds[i]);
else
negatives.push(eformDetailIds[i]);
}
如果你想要一个以逗号分隔的字符串形式,只需在数组上调用“.join()”:
var strsPositive = positive.join(',');