2017-05-03 31 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現在你有!哈哈哈 – DontVoteMeDown

+1

現在我投票了哈哈 –