Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
09 Сен 2024
2 мин
1973

Извлечение значений свойств из массива объектов в JavaScript

В JavaScript часто встречается задача, когда требуется извлечь определенные значения свойств из массива объектов. Например, есть массив объектов следующего

В JavaScript часто встречается задача, когда требуется извлечь определенные значения свойств из массива объектов. Например, есть массив объектов следующего вида:

let objArray = [ { foo: 1, bar: 2}, { foo: 3, bar: 4}, { foo: 5, bar: 6} ];

Задача состоит в том, чтобы извлечь значения свойства foo из каждого объекта и получить новый массив, в котором будут только эти значения. То есть, в результате должен получиться массив: [ 1, 3, 5 ].

Один из вариантов решения этой задачи — написать функцию, которая будет проходить по массиву объектов, и для каждого объекта извлекать значение нужного свойства. Затем эти значения добавляются в новый массив, который и возвращается как результат. Вот пример такой функции:

function getFields(input, field) {
    var output = [];
    for (var i=0; i < input.length ; ++i)
        output.push(input[i][field]);
    return output;
}

let result = getFields(objArray, "foo"); // возвращает [ 1, 3, 5 ]

Но в JavaScript есть более изящный и короткий способ сделать это, используя встроенный метод массивов map. Этот метод проходит по всем элементам массива и применяет к ним функцию, которую вы передаете в качестве аргумента. Возвращаемые значения этой функции собираются в новый массив. Таким образом, можно извлечь значения свойства foo следующим образом:

let result = objArray.map(function(item) {
    return item.foo;
});

Или используя стрелочную функцию (это более современный и короткий синтаксис):

let result = objArray.map(item => item.foo);

И в обоих случаях в переменной result будет массив [ 1, 3, 5 ]. Это решение короче и проще для чтения, чем использование цикла for, и оно является более предпочтительным способом решения такой задачи в JavaScript.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий