2017-05-03 2 views
1

icであり、cbListは私の内部配列で、agaistをチェックしています。私は配列全体をチェックし、cbListに基づいて最高の値を返したいと思います。私はいくつかの醜いコードを既に試してみましたが、私はそれを使いたくない、誰かが基本的にこれをより効率的にすることができますか?私は検索してきたし、私の状況で何かを見つけることができません。配列を別の配列に対して検索しようとしていますが、他の配列は内部優先度が

だから基本的にはicを確認したいと最高がポップアップする場合、何最高が見つからない場合、そのように上高い値をチェックするために行く、と、抜け出すと、その値を返します...

  function hcbin(inv){ 
      var fh; 
      var ic = ['low','med','low','high']; 
      var cbList = [ 'low', 'med', 'high','highest']; 


      for(var i = 0; i < ic.length; i++) { 
       if (ic[i] === cbList[3]) { 
        $scope.hdc = ic[i]; 
        fh = true; 
       } 
      } 

      if (!fh){ 
       for(var ii = 0; ii < ic.length; ii++) { 
        if (ic[ii] === cbList[2]) { 
         $scope.hdc = ic[ii]; 
         fh = true; 
        } 
       } 
      } 

      if (!fh){ 
       for(var iii = 0; iii < ic.length; iii++) { 
        if (ic[iii] === cbList[1]) { 
         $scope.hdc = ic[iii]; 
         fh = true; 
        } 
       } 
      } 

      if (!fh){ 
       for(var iiii = 0; iiii < ic.length; iiii++) { 
        if (ic[iiii] === cbList[0]) { 
         $scope.hdc = ic[iiii]; 
         fh = true; 
        } 
       } 
      } 
     }; 
+1

意味が分かるようにvar名を変更してください – Archmede

答えて

1

このスニペットを試してみてください:

var ic = ['low','med','low', 'high']; 
 
var cbList = [ 'low', 'med', 'high','highest']; 
 
var result = null; 
 

 
for (var i = (cbList.length - 1); i >=0; i--) { 
 
    if (ic.indexOf(cbList[i]) > -1) { 
 
    result = cbList[i]; 
 
    break; 
 
    } 
 
} 
 

 
console.log(result);

cbListは(最高への重要性から)優先順位を維持していることを確認しますがforので、その時に基づいています。

+0

ありがとうございました!魅力のように働いた、投票するのに十分な担当者がいない:/ –

+0

@KyleSilk今あなたが持っている! hahaha – DontVoteMeDown

+1

今、私は笑った –