我有這種信用卡類型的數據結構。如何讓此功能更有效?
使得hasTransFee效率更高將是一件好事。如果我開始將卡片等添加到此列表中,它可能會變得非常大,所以它的運行速度越快越好。
任何人有任何建議嗎?
$scope.creditCards = [
{ name: 'VISA DEBIT/DELTA', value: 'DEL', transactionFee: false},
{ name: 'VISA CREDIT', value: 'VIS', transactionFee: true },
{ name: 'MASTERCARD CREDIT', value: 'MSC', transactionFee: true },
{ name: 'MASTERCARD DEBIT', value: 'MCD', transactionFee: false },
{ name: 'MAESTRO', value: 'MAE', transactionFee: false },
{ name: 'SWITCH', value: 'SWI', transactionFee: false },
{ name: 'VISA ELECTRON', value: 'ELC', transactionFee: false },
{ name: 'SOLO', value: 'SOL', transactionFee: false }
];
var hasTransFee = function(cardType)
{
for (var i=0; i < $scope.creditCards.length; i++) {
if($scope.creditCards[i].value==cardType && $scope.creditCards[i].transactionFee == true){
return true;
}
}
return false;
}
如果您有您的代碼的性能問題,做了一些分析和查明緩慢的p藝術是。在此之前,你不應該擔心過早的優化。 – 2014-10-07 23:37:38
確實看起來每個人的「價值」都會成爲一個很好的對象關鍵,不是嗎?那麼根本不需要循環。它就像'card_values [cardType]'。 – 2014-10-07 23:39:26
將該值設置爲哈希鍵,然後僅返回creditCards [key] .transactionFee。不需要迭代 – allenhwkim 2014-10-07 23:41:57