В IQ тесте дается массив с числами.
Одно из них отличается от других четностью/нечетностью.
Функция возвращает его индекс.
function iqTest(str) {
array = str.split(' ');
var boolArray = [];
function checkEven(num) {
return +num % 2 === 0? true:false;
}
for (var i = 0; i < array.length; i++) {
boolArray.push(checkEven(array[i]));
}
var differ = boolArray[0];
var index = 1;
for (var j = 1; j < boolArray.length; j++) {
if (boolArray[j] !== differ) {
differ = boolArray[j];
index = j;
}
}
return index;
};
Но функция возвращает неверный индекс, когда отличный от других елемент - четное число
Как можно решить задачу, не сравнивая четность каждого элемента массива с четностью предыдущих:
Реализация:
function iqTest(array) {
var data = [[], []];
array.forEach(function(value, index) {
data[value % 2].push(index);
});
if (data[0].length == 1)
return data[0][0];
if (data[1].length == 1)
return data[1][0];
return -1;
}
console.log(iqTest([1, 3, 5, 2]));
При желании можно расширить алгоритм для проверки остатка от деления на произвольное (заданное) число:
function iqTest(array, base) {
var data = [];
for (var i = 0; i < base; i++)
data.push([]);
array.forEach(function(value, index) {
data[value % base].push(index);
});
for (var i = 0; i < base; i++) {
if (data[i].length == 1)
return data[i][0];
}
return -1;
}
console.log(iqTest([1, 2, 3, 4, 5], 3));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть понятие "ограничитель" в MySQLНапример, это первичный ключ (ключ должен быть уникален, поэтому каждый раз производится поиск "а не было...
у меня есть два обычных радио-инпута, которые должны иметь жирный текст при состоянии checked Вот пример – Пример на codepen Но в моем примере при...
Почему для тега select не выводится значение атрибута style? Все теги закрыты