Javascript循环给我带来问题

时间:2013-02-07 17:34:26

标签: javascript

我想只从这个字符串中提取组

我希望在警报“group1,group2”中有类似内容  但它返回空。

var phone_nos = "group1,group2,564774890900";   
var recipients = phone_nos.split(",");  
for( var i=0; i<recipients.length; i++ )
 group =recipients[i].substring(0,5)
{ if (group=="group")
         {groups.push(recipients)}


    }
    alert(groups.join(","))

2 个答案:

答案 0 :(得分:2)

您有各种错误。

for( var i=0; i<recipients.length; i++ ){
    group =recipients[i].substring(0,5)
    if (group=="group")
         {groups.push(recipients)}
}

你的声明只运行下一行代码,而不是我认为的块。如果您更好地格式化代码,您将能够更好地看到这样的错误。

for( var i=0; i<recipients.length; i++ )
    group =recipients[i].substring(0,5)
   // MORE CODE

以上仅运行for。之后的第一个完整行。

答案 1 :(得分:2)

for的一些错位大括号并假设您要过滤group*,您需要添加recipients[i] groups数组而不是原始recipients字符串。

var phone_nos = "group1,group2,564774890900";   
var recipients = phone_nos.split(","); 
var groups = [];
for (var i=0; i < recipients.length; i++) {
  group = recipients[i].substring(0,5);
  if (group == "group") {
    groups.push(recipients[i]);
  }
}
alert(groups.join(","))

现代浏览器/ IE9 +

var groups = phone_nos.split(",").filter(function(v) {
  return v.substring(0, 5) === "group"
});