Я хочу предоставить функцию, которая будет возвращать объект с нечетными и четными числами. Пример: parseNum (12345) // Объект {нечетное: 3, четное: 2}. У меня есть код, но я не понимаю, почему он не работает. В чем проблема?
function parseNum(num) {
var obj = {
odd: 0,
even: 0
};
var arr = Array.from(num);
arr.forEach(function(value) {
if (value % 2 === 0) {
obj.odd += 1;
} else {
obj.even += 1;
}
});
return obj;
}
Рекомендую использовать for (const value of arr) { вместо .forEach



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваш ответ не работает, потому что число не повторяется, вы должны сначала преобразовать его в строку.
function parseNum(num) {
var obj = {
odd: 0,
even: 0
};
if (typeof num === 'number') {
num = num.toString();
}
var arr = Array.from(num);
arr.forEach(function(value) {
if (value % 2 === 0) {
obj.odd += 1;
} else {
obj.even += 1;
}
});
return obj;
}
Я думаю это проще
function parseNum(num) {
const odd = Math.floor(num / 2);
const even = num - odd;
return {
odd,
even
}
}
Не думаю, что
Array.from(num)подойдет. Полагаю, вы ищете что-то вродеArray.from(num.toString(10), Number)?