如果条件满足多次,则从数组返回多个值

时间:2017-12-26 06:08:13

标签: javascript arrays angularjs if-statement

我想从for循环返回多个值,如果我的条件满足多次

for(var i=0;i<graphVariableCount;i++)
  {
     if(commandResponse.GenericName == graphVariables[i].variable.index)
     {
        return graphVariables[i].variable.index;
     }
  }  

在上面的代码中,我只能返回一个值。如果graphVariable [i] .variable.index的GenericName对于4-5个变量是相同的。那么我怎么能够返回这些值。

3 个答案:

答案 0 :(得分:4)

使用filtermap

return graphVariables.filter( s => commandResponse.GenericName == s.variable.index )
               .map( s => s.variable.index );

<强>解释

  • filter将过滤数组以仅获取匹配值
  • map会迭代该过滤后的数组,并且只会从中获取s.variable.index

答案 1 :(得分:2)

   var values = [];
   for(var i=0;i<graphVariableCount;i++)
      {
         if(commandResponse.GenericName == graphVariables[i].variable.index)
         {
            values.push(graphVariables[i].variable.index);
         }
      }  
   return values;

答案 2 :(得分:0)

你可以使用如下的temperory:

var results= []; 
for(var i=0;i<graphVariableCount;i++)

  {

     if(commandResponse.GenericName == graphVariables[i].variable.index)
     {
       results.push( graphVariables[i].variable.index);
     }
  }