code refactor

This commit is contained in:
MaysWind
2021-05-04 22:50:06 +08:00
parent d2d2babf0b
commit ec19a18fc2
10 changed files with 91 additions and 143 deletions
+32
View File
@@ -0,0 +1,32 @@
export default function (oldRate, currentCurrency, allExchangeRates) {
const exchangeRateMap = {};
for (let i = 0; i < allExchangeRates.length; i++) {
const exchangeRate = allExchangeRates[i];
exchangeRateMap[exchangeRate.currency] = exchangeRate;
}
const toCurrencyExchangeRate = exchangeRateMap[currentCurrency];
if (!toCurrencyExchangeRate) {
return '';
}
const newRate = parseFloat(oldRate) / parseFloat(toCurrencyExchangeRate.rate);
const newRateStr = newRate.toString();
if (newRateStr.indexOf('.') < 0) {
return newRateStr;
} else {
let firstNonZeroPos = 0;
for (let i = 0; i < newRateStr.length; i++) {
if (newRateStr.charAt(i) !== '.' && newRateStr.charAt(i) !== '0') {
firstNonZeroPos = Math.min(i + 4, newRateStr.length);
break;
}
}
return newRateStr.substr(0, Math.max(6, Math.max(firstNonZeroPos, newRateStr.indexOf('.') + 2)));
}
}
+29 -13
View File
@@ -1,27 +1,43 @@
import utils from '../lib/utils.js';
export default function (value, options, keyName, valueName) {
export default function (value, options, keyField, nameField, defaultName) {
if (utils.isArray(options)) {
for (let i = 0; i < options.length; i++) {
const option = options[i];
if (keyField) {
for (let i = 0; i < options.length; i++) {
const option = options[i];
if (option[keyName] === value) {
return option[valueName];
if (option[keyField] === value) {
return option[nameField];
}
}
} else {
if (options[value]) {
const option = options[value];
return option[nameField];
}
}
} else if (utils.isObject(options)) {
for (let key in options) {
if (!Object.prototype.hasOwnProperty.call(options, key)) {
continue;
if (keyField) {
for (let key in options) {
if (!Object.prototype.hasOwnProperty.call(options, key)) {
continue;
}
const option = options[key];
if (option[keyField] === value) {
return option[nameField];
}
}
} else {
if (options[value]) {
const option = options[value];
const option = options[key];
if (option[keyName] === value) {
return option[valueName];
return option[nameField];
}
}
}
return '';
return defaultName;
}