From 34c5a1750e8ee73de814d2349e83d74fee616e3b Mon Sep 17 00:00:00 2001 From: MaysWind Date: Tue, 9 Sep 2025 23:48:42 +0800 Subject: [PATCH] use for-of statements to replace for and for-in --- src/components/base/NumberInputBase.ts | 14 +- src/components/base/PieChartBase.ts | 6 +- .../base/ScheduleFrequencySelectionBase.ts | 6 +- src/components/common/PinCodeInput.vue | 52 +++--- src/components/common/TransactionCalendar.vue | 2 +- src/components/desktop/AmountInput.vue | 10 +- src/components/desktop/PaginationButtons.vue | 8 +- src/components/desktop/PieChart.vue | 25 +-- .../desktop/ScheduleFrequencySelect.vue | 6 +- src/components/desktop/StepsBar.vue | 7 +- src/components/mobile/NumberPadSheet.vue | 6 +- src/components/mobile/PieChart.vue | 12 +- src/consts/currency.ts | 2 +- src/consts/icon.ts | 4 +- src/core/base.ts | 62 +++++++ src/core/fiscalyear.ts | 6 +- src/core/numeral.ts | 14 +- src/lib/__tests__/fiscal_year.ts | 4 +- .../calendar/__tests__/chinese_calendar.ts | 30 ++-- src/lib/calendar/chinese_calendar.ts | 6 +- src/lib/category.ts | 154 ++++++------------ src/lib/common.ts | 130 +++++---------- src/lib/datetime.ts | 35 ++-- src/lib/file.ts | 8 +- src/lib/icon.ts | 13 +- src/lib/statistics.ts | 10 +- src/lib/ui/common.ts | 11 +- src/lib/ui/mobile.ts | 11 +- src/lib/webauthn.ts | 6 +- src/stores/overview.ts | 4 +- src/views/base/ExchangeRatesPageBase.ts | 2 +- .../base/accounts/AccountEditPageBase.ts | 8 +- .../ReconciliationStatementPageBase.ts | 12 +- .../settings/CategoryFilterSettingPageBase.ts | 23 +-- .../transactions/TransactionEditPageBase.ts | 6 +- .../accounts/list/dialogs/EditDialog.vue | 2 +- .../cards/CategoryFilterSettingsCard.vue | 2 +- .../transactions/import/ImportDialog.vue | 4 +- .../import/dialogs/BatchCreateDialog.vue | 6 +- .../transactions/list/dialogs/EditDialog.vue | 4 +- .../settings/tabs/UserBasicSettingTab.vue | 4 +- src/views/mobile/accounts/ListPage.vue | 2 +- .../accounts/ReconciliationStatementPage.vue | 7 +- .../settings/AccountFilterSettingsPage.vue | 16 +- .../settings/CategoryFilterSettingsPage.vue | 14 +- .../TransactionTagFilterSettingsPage.vue | 12 +- .../mobile/transactions/AmountFilterPage.vue | 8 +- src/views/mobile/transactions/EditPage.vue | 10 +- src/views/mobile/users/SessionListPage.vue | 16 +- src/views/mobile/users/UserProfilePage.vue | 6 +- 50 files changed, 368 insertions(+), 460 deletions(-) diff --git a/src/components/base/NumberInputBase.ts b/src/components/base/NumberInputBase.ts index b8a3180f..e6b2a2fe 100644 --- a/src/components/base/NumberInputBase.ts +++ b/src/components/base/NumberInputBase.ts @@ -40,11 +40,13 @@ export function useNumberInputBase(props: NumberInputProps, emit: NumberInputEmi let finalValue = ''; for (let i = 0; i < value.length; i++) { - if (!NumeralSystem.WesternArabicNumerals.isDigit(value[i]) && !numeralSystem.value.isDigit(value[i]) && value[i] !== '-' && value[i] !== decimalSeparator) { + const ch = value.charAt(i); + + if (!NumeralSystem.WesternArabicNumerals.isDigit(ch) && !numeralSystem.value.isDigit(ch) && ch !== '-' && ch !== decimalSeparator) { break; } - finalValue += value[i]; + finalValue += ch; } finalValue = numeralSystem.value.replaceLocalizedDigitsToWesternArabicDigits(finalValue); @@ -104,14 +106,16 @@ export function useNumberInputBase(props: NumberInputProps, emit: NumberInputEmi const decimalSeparator = getCurrentDecimalSeparator(); if (newValue[0] === '-' || newValue[0] === decimalSeparator) { - actualNumeralSystem = NumeralSystem.detect(newValue[1]); + actualNumeralSystem = NumeralSystem.detect(newValue.charAt(1)); } else { - actualNumeralSystem = NumeralSystem.detect(newValue[0]); + actualNumeralSystem = NumeralSystem.detect(newValue.charAt(0)); } if (actualNumeralSystem && (actualNumeralSystem.type === NumeralSystem.WesternArabicNumerals.type || actualNumeralSystem.type === numeralSystem.value.type)) { for (let i = 0; i < newValue.length; i++) { - if (!NumeralSystem.WesternArabicNumerals.isDigit(newValue[i]) && !numeralSystem.value.isDigit(newValue[i]) && newValue[i] !== '-' && newValue[i] !== decimalSeparator) { + const ch = newValue.charAt(i); + + if (!NumeralSystem.WesternArabicNumerals.isDigit(ch) && !numeralSystem.value.isDigit(ch) && ch !== '-' && ch !== decimalSeparator) { break; } diff --git a/src/components/base/PieChartBase.ts b/src/components/base/PieChartBase.ts index 23b9abf8..92267b16 100644 --- a/src/components/base/PieChartBase.ts +++ b/src/components/base/PieChartBase.ts @@ -44,8 +44,7 @@ export function usePieChartBase(props: CommonPieChartProps) { const validItems = computed(() => { let totalValidValue = 0; - for (let i = 0; i < props.items.length; i++) { - const item = props.items[i]; + for (const item of props.items) { const value = item[props.valueField]; if (isNumber(value) && value > 0 && (!props.hiddenField || !item[props.hiddenField])) { @@ -55,8 +54,7 @@ export function usePieChartBase(props: CommonPieChartProps) { const validItems: CommonPieChartDataItem[] = []; - for (let i = 0; i < props.items.length; i++) { - const item = props.items[i]; + for (const item of props.items) { const value = item[props.valueField]; const percent = props.percentField ? item[props.percentField] : -1; diff --git a/src/components/base/ScheduleFrequencySelectionBase.ts b/src/components/base/ScheduleFrequencySelectionBase.ts index 1227c22b..6da12931 100644 --- a/src/components/base/ScheduleFrequencySelectionBase.ts +++ b/src/components/base/ScheduleFrequencySelectionBase.ts @@ -44,9 +44,9 @@ export function useScheduleFrequencySelectionBase() { const values = value.split(','); const ret: number[] = []; - for (let i = 0; i < values.length; i++) { - if (values[i]) { - ret.push(parseInt(values[i])); + for (const value of values) { + if (value) { + ret.push(parseInt(value)); } } diff --git a/src/components/common/PinCodeInput.vue b/src/components/common/PinCodeInput.vue index ecceab3b..7b65f49d 100644 --- a/src/components/common/PinCodeInput.vue +++ b/src/components/common/PinCodeInput.vue @@ -1,15 +1,15 @@