Сегодня разобрался с алгоритмами. Согласно курсу алгоритм «является самодостаточным пошаговым набором операций, которые необходимо выполнить. Алгоритмы выполняют расчеты, обработку данных и/или автоматизированные логические задачи».

Это было немного иначе, чем в обычных классах, где мне давали вопрос для решения, а затем давали список методов и свойств, которые я мог использовать для поиска решения. Курс прошел через краткое изложение методов, которые вам понадобятся, прежде чем дать мне возможность попытаться решить эту проблему.

Первый вопрос был: реализовать алгоритм для определения того, содержит ли строка все уникальные символы (например, нет повторяющихся символов).

Мне сказали, что ингредиенты, которые будут полезны, следующие:

  • Для цикла
  • Условное заявление
  • Строка.indexOf()
  • Строка.LastIndexOf()

Затем он провел быстрый пересмотр методов, которые я напишу здесь, чтобы помочь и себе.

Цикл For

for(initialize; test condition; update value){
//code block
}

Условный оператор

if(expression){
//code block
}

индекс()

var car = 'honda civic'
car.indexOf('civic'); // 6 - where the word civic begins
car.indexOf('i'); // 7 - it will only return the index of the first time the letter is found

lastIndexOf()

var car = 'honda civic'
car.lastIndexOf('i');//9 - where the last 'i' is found

Ответ на вопрос: алгоритм определения того, содержит ли строка все уникальные символы (например, нет повторяющихся символов), следующий:

function unique (str){
for (var i = 0; i < str.length; i++) {
if (str.indexOf(str[i]) !== str.lastIndexOf(str[i]))
return false;
}
return true;
};
unique('car')// returns true
unique('carr')// returns false

Я не получил всего ответа сам, но хорошо начал, прежде чем увидел, как это сделать. Следующий вопрос я постараюсь решить самостоятельно. Но мне на сегодня хватит.