нужно через forEach вывести только числа из массива
let a3 = [2, "hello", 3, "hi", 4, "Mazai"];
let a3_res = a3.forEach(function(elem, index) {
if (a3 == Number) {
console.log(elem);
}
});
Ответы (3 шт):
Автор решения: Igor
→ Ссылка
let a3 = [2, "hello", 3, "hi", 4, "Mazai"];
let a3_res = a3.filter(function(elem) {
return typeof elem == "number";
});
console.log(a3_res);
Автор решения: fortavey
→ Ссылка
Если У Вас задача сделать это именно при помощи forEach, то элементы в новый массив нужно добавлять принудительно, поскольку forEach это метод, который просто проходит по массиву, ничего не возвращая.
let a3 = [2, "hello", 3, "hi", 4, "Mazai"];
let a3_res = [];
a3.forEach(function(elem) {
if(typeof elem == "number") a3_res.push(elem);
});
console.log(a3_res);
Автор решения: DiD
→ Ссылка
let a3 = [
-Infinity, // минус бесконечность
false, // не число
NaN, // не число
2.4e-3, // 0.0024
'', // не число
'-1', // не число
null, // не число
0, // 0
Number, // не число
'1', // не число
undefined, // не число
2, // 2
"hello", // не число
3, // 3
Math.E, // 2.7
"hi", // не число
4, // 4
"Mazai", // не число
'2e5', // не число
Number(1), // 1
0xffff, // 65535
new Number, // 0
true, // не число
Infinity, // плюс бесконечность,
23497654337n// не число
];
const a3_res = [];
const isNum=v=>'[object Number]' == Object.prototype.toString.call(v) && ! isNaN(v);
a3.filter(isNum)
.map(v=>+v)
.forEach(v=>a3_res.push(v));
a3_res.forEach(v=>console.log(v));