Застрял в глупой петле в контроллере - PullRequest
0 голосов
/ 28 мая 2018

У меня есть эта функция:

$scope.showCurrencyT = function(invCurrency){

    for (i=0; i<2; i++) { 
        console.log("i is " +i);

        if (parseInt($scope.pageInfo.currencies[i].currencyCode) === parseInt(invCurrency) ) {

           console.log('passed '+ i + ' ' + $scope.pageInfo.currencies[i].currencyCode )

           var symbol =  $scope.pageInfo.currencies[i].symbol
           console.log(symbol);

       } else { 
           console.log(i +" else")
           var symbol = invCurrency
       }

    }

    console.log("final symbol is " + symbol)

    return symbol

}

'2' в цикле может быть $scope.pageInfo.currencies.length на самом деле

$scope.pageInfo.currencies object выглядит так:

 [  
   {  
      "_id":"59e5d2ad57acbb22bce66482",
      "name":"US Dollar",
      "nameInOriginalLanguage":"US Dollar",
      "nameStringId":"806c1313-a9f4-53bc-8f20-6897aae76d0a",
      "symbol":"USD",
      "currencyCode":"840",
      "__v":0
   },
   {  
      "_id":"59e5d2ec57acbb22bce66484",
      "name":"Turkish Lira",
      "nameInOriginalLanguage":"Türk Lirası",
      "nameStringId":"e072dece-4e18-d830-06b3-9e789a3b5240",
      "symbol":"TRY",
      "currencyCode":"949",
      "__v":0
   }
]

Когда я передаю в поле зрения:

{{showCurrencyT("840")}}

Я получаю в консоли:

последний символ 840

, но когда я передаю его {{showCurrencyT("949")}} Я получил окончательный символ TRY

Он должен вернуть USD за 840, и я не понимаю, что происходит!

1 Ответ

0 голосов
/ 28 мая 2018

Здесь вам не нужно использовать цикл for, вы можете просто использовать метод array.find (), чтобы найти точное совпадающее значение следующим образом:

$scope.showCurrencyT = function(invCurrency){
   var result = $scope.pageInfo.currencies.find(t=>t.currencyCode === invCurrency);
   return result.symbol;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...