Middle
36
Есть массив объектов с полем value. Нужно собрать новый массив, содержащий только числовые значения из этих объектов (без строк). Как это сделать и как проверить, является ли значение числом?
Сұралған компаниялар
Электронные офисные системы
AI-дан жауап
sobes.tech AI
Чтобы из массива объектов получить новый массив, содержащий только числовые значения поля value, можно использовать методы filter и map в JavaScript.
Проверить, что значение является числом, можно с помощью функции typeof и проверки на NaN:
const arr = [
{ value: 10 },
{ value: '20' },
{ value: 30 },
{ value: 'abc' },
{ value: 40 }
];
const numbers = arr
.map(obj => obj.value)
.filter(val => typeof val === 'number' && !isNaN(val));
console.log(numbers); // [10, 30, 40]
Здесь:
mapизвлекает полеvalueиз каждого объекта.filterоставляет только те значения, которые имеют типnumberи не являютсяNaN.
Если нужно также учитывать числовые строки, можно использовать Number и проверять результат:
const numbers = arr
.map(obj => Number(obj.value))
.filter(val => !isNaN(val));
Но в вопросе указано без строк, поэтому первый вариант подходит.