JavaScript. Почему данный код не складывает эти элементы массива
Не судите строго мой код, я новичок в js, хотел бы понять в чём была моя ошибка. Было бы классно услышать еще и объяснения. Задача: 'Составить функцию, которая будет складывать все те числа массива, которые кратны 3 и оканчиваются на 4'. Проблема: 'Числа массива, которые кратны 3 функция без проблем складывает, а числа, оканчивающиеся на 4 - нет'. Снизу будет мой код =>
let input = [14, 3, 9, 14, 5];
function ege(int) {
let sum = 0;
for (let i = 0; i < int.length; i++) {
if (int[i] % 3 === 0) {
sum += int[i];
}
if ((int[i].length - 1) === 4) {
sum += int[i];
}
}
return sum;
}
console.log(ege(input));
Ответы (2 шт):
Рабочий вариант, если нужно придерживаться двух условий одновременно:
let input = [14, 3, 9, 14, 5];
function ege(int) {
let sum = 0;
for (let i = 0; i < int.length; i++) {
if (int[i] % 3 === 0 && int[i] % 10 === 4) {
sum += int[i];
}
}
return sum;
}
console.log(ege(input));
Элементами массив int в данном случае являются числа. У чисел нет свойства length, поэтому и int[i].length - 1 не совсем корректное выражение.
Для получение последней цифры целого числа, достаточно посмотреть остаток от деления этого числа на 10.
if ((int[i] % 10) === 4) {
Кроме того, в задаче указано, что числа должны быть кратны 3 И оканчиваться на 4, а в приведенном примере, число может удовлетворять всего одному из условий.
Для решения нужно объединить условия в один if с помощью логического И
if ((int[i] % 3 === 0) && (int[i] % 10 === 4)) {
sum += int[i];
}