Sobes.tech
Back to questions
Middle
1

Есть массив объектов с полем value. Нужно собрать новый массив, содержащий только числовые значения из этих объектов (без строк). Как это сделать и как проверить, является ли значение числом?

Companies where asked
Электронные офисные системы

Answer from 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));

Но в вопросе указано без строк, поэтому первый вариант подходит.