@vitas1693

Как проверить элементы массива делятся на отрицательное число или нет?

Есть задача :
"Функция должна принимать в качестве аргументов любое целое число и возвращать два массива чисел. В первый массив должны попасть числа от 0 до заданного числа, которые делятся на 3, во второй - все числа от 0 до заданного числа, которые делятся на 5." Также должна функция работать с отрицательными числами.
function getArrays(number) {
  const result = [[], []];
  return result;
}

export default getArrays;

Например:
getArrays(5); // должен вернуть [[3], [5]]

С положительными решил, но с отрицательными не могу сообразить,подскажите куда копать или как это сделать?
PS.. надеюсь понятно объяснил
мой код

function getArrays(number) {
    if (Number.isInteger(number) == true){
        let thee = [];
        let five = [];
        const result = [];

        for( let i = 0; i <= number; i ++){
            if (i % 3 === 0) {
                thee.push(i);
            }
            if (i % 5 === 0) {
                five.push(i);
            }            
        }
          result.push(thee.slice(1));
          result.push(five.slice(1));
            return result;
    }else{
        console.log(' Введенное число не целое!');
    }
}

console.log(getArrays(5));
  • Вопрос задан
  • 623 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
sign = Math.sign(number)
abs = Math.abs(number)
for (let i = 0; i <= abs; i += 3) {
  three.push(i * sign)
}
for (let i = 0; i <= abs; i += 5) {
  five.push(i * sign)
}

Или так:
const step3 = number < 0 ? -3 : 3
const three = Array.from(Array(Math.floor(number / step3) + 1), (_, x) => x * step3)
const step5 = number < 0 ? -5 : 5
const five = Array.from(Array(Math.floor(number / step5) + 1), (_, x) => x * step5)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы