Андрей
Высший разум
(484012)
6 лет назад
Ты присваиваешь значение переменной firstLove, а используешь НЕ существующую переменную fist, присваиваешь значение secondLove, а используешь не существующую переменную second.
unshift совершенно не нужен.
Весь код твоей функции можно записать намного проще:
let count = 0;
for (let i in preferences) { count += i == preferences[preferences[i]]; }
return count / 3;
Или даже в одну строчку:
rerurn preferences.filter((val, i) => i == preferences[val]).length / 3;
Spichonees (составленное имя) живут в стране Spichland, где нет пола. Spichonees - большие любовники, поэтому каждый Spichonee любит любого другого Spichonee. К сожалению, иногда бывают ситуации, когда Spichonee A любит Spichonee B, Spichonee B любит Spichonee C и Spichonee C любит Spichonee A. Это явление называется любовным треугольником .
задача
Ваша задача - реализовать функцию, getLoveTrianglesCountкоторая вычисляет количество любовных треугольников . Функция принимает массив целых чисел как единственный параметр. Целое число kна этом nозначает, что nСпишон любит kСпихоние.
Почему тест выдает ошибку?
/**
* @param preferences - an array of integers. Indices of people, whom they love
* @returns number of love triangles
*/
module.exports = function getLoveTrianglesCount(preferences = []) {
// your implementation
var count = 0;
preferences.unishift('');
for(var i = 0; i < preferences.length; i++){
var firstLove = preferences[i];
var secondLove = preferences[first];
var thirdLove = preferences[second]
if (thirdLove == i) {
count++;
}
}
count = count / 3;
return Math.round(count);
};