如何将List分成两个列表

时间:2011-05-22 18:43:43

标签: javascript jquery

在我的表单中,我有多个具有相同名称(eform_id)的字段(隐藏文本框)。 (例如,我有7个隐藏的文本框,其中包含如1234,-1235,1236,1237,-1238,-1239,1240之类的值。

我正在将这些值添加到我的js文件中。

var eformDetailIds=$("[name=eform_id]").map(function(){
    return $(this).val() }).get();

现在我的要求是我必须将此eformDetailIds分成两个列表..(或一串逗号分隔值),以便第一个列表包含所有正值,第二个列表包含所有负值。

请帮助我找到解决问题的合适代码。

1 个答案:

答案 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(',');