Skip to content

function refactor#3

Open
vxrossa wants to merge 1 commit into
QoreCode:mainfrom
vxrossa:main
Open

function refactor#3
vxrossa wants to merge 1 commit into
QoreCode:mainfrom
vxrossa:main

Conversation

@vxrossa

@vxrossa vxrossa commented Feb 13, 2022

Copy link
Copy Markdown

No description provided.

@eubash eubash left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я бы все-таки оставила проверку на пустую строку, чтобы впустую не проходиться по циклу.

}
const largestIndexOfLetters = (string, ...letters) => {
const indexesArr = [ ...letters ]
.map((letter) => letter.length === 1 ? string.lastIndexOf(letter) : -1);

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Цикл в цикле. Квадратичная сложность. Ее можно было довольно легко избежать)

Comment on lines +2 to 5
const indexesArr = [ ...letters ]
.map((letter) => letter.length === 1 ? string.lastIndexOf(letter) : -1);
return Math.max(...indexesArr);
}

@QoreCode QoreCode Feb 17, 2022

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В этой фунцкии есть ошибки...

Давай по пунктам, что бы исправить эти моменты:

  1. Изменены название функции и входящие параметры. Теперь функция может принимать бесконечное к-во параметров. Если бы на проекте применялось контрактное программирование - нужно было бы заключать новый контракт и импактить все области приложения в которых используется эта функция.
  2. Был ли резон записывать функцию в переменную? Ничего против не имею, результат будет тем же, прост интересно)
  3. indexesArr ничего не говорит о том что именно содержится в переменной. Вероятно как и letters
  4. Была убрана проверка первого параметра, т.е. было изменено поведение функции. Опять же, импакт.

В целом решение неплохое. но оно на грани))
Отсутствие промежуточных результатов и сахар немного затрудняют чтение функции. Была бы в ней больше операций и уже нужно было бы рефакторить

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants